为了账号安全,请及时绑定邮箱和手机立即绑定

在正则表达式中组合 2 个条件

在正则表达式中组合 2 个条件

Cats萌萌 2023-07-06 15:20:36
我想创建一个正则表达式来检查非 ASCII 字符和一些特殊字符。 /^[\x00-\x7F]+$/    '[^{}$]*'这些条件单独起作用,但当我将它们组合起来时则不起作用。尝试过/^([\x00-\x7F]|[^{}$]*)$/   but failing.任何帮助将非常感激。提前致谢。
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

^[\x00-\x7F]+$- 匹配完全由 ASCII 字符组成的字符串。

[^{}$]* 匹配零个或多个不同于{,}和 的字符$

因此,第二条规则匹配任何字符串。如果这是您的意图,只需使用第一个正则表达式。

如果您想匹配任何纯 ASCII 字符串(不包括 ){}$使用

^(?=[\x00-\x7F]+$)[^{}$]*$


解释

--------------------------------------------------------------------------------

  ^                        the beginning of the string

--------------------------------------------------------------------------------

  (?=                      look ahead to see if there is:

--------------------------------------------------------------------------------

    [\x00-\x7F]+             any character of: '\x00' to '\x7F' (1 or

                             more times (matching the most amount

                             possible))

--------------------------------------------------------------------------------

    $                        before an optional \n, and the end of

                             the string

--------------------------------------------------------------------------------

  )                        end of look-ahead

--------------------------------------------------------------------------------

  [^{}$]*                  any character except: '{', '}', '$' (0 or

                           more times (matching the most amount

                           possible))

--------------------------------------------------------------------------------

  $                        before an optional \n, and the end of the

                           string


查看完整回答
反对 回复 2023-07-06
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

看起来你的正则表达式的这一部分有问题[\x00-\x7F]。我已经尝试过以下方法并且有效。

^([[:ascii:]]+$|[^{}$]*)$


查看完整回答
反对 回复 2023-07-06
  • 2 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信