Regex 特殊正则表达式
我需要一个正则表达式来验证3种不同的情况:Regex 特殊正则表达式,regex,Regex,我需要一个正则表达式来验证3种不同的情况: 99.99 F99.9 F/S99.9 点可以用逗号代替 我有这样的[F | F/S]?\d*[\,.]\d*但我不能让第三个案例起作用 任何帮助都将不胜感激 您可以使用可选组,而不是字符类: (?:F(?:/S)?)?\d*[,.]\d+ ^^ ^^ ^^^^ 见 如果需要匹配整个字符串,请在、^和$周围添加锚定:^(?:F(?:S)?)?\d*[,.]\d+$ 详情: (?:F(?:/S)?-可选的F,可选择后跟/S \
[F | F/S]?\d*[\,.]\d*
但我不能让第三个案例起作用
任何帮助都将不胜感激 您可以使用可选组,而不是字符类:
(?:F(?:/S)?)?\d*[,.]\d+
^^ ^^ ^^^^
见
如果需要匹配整个字符串,请在、^
和$
周围添加锚定:^(?:F(?:S)?)?\d*[,.]\d+$
详情:
-可选的(?:F(?:/S)?
,可选择后跟F
/S
-0+位(如果您希望至少有1位,请将\d*
替换为*
)+
-逗号或点[,.]
-1+位\d+
^(F(/S)??99\.9$
。下一个从已删除的Aaron答案中摘录:第三种情况不起作用,因为您没有正确编写第一个正则表达式片段:[…]
是一个字符类,它将匹配它包含的任何字符。您用?
量词作为后缀,表示它必须匹配0或1次,因此它不能匹配3个字符F/S
。简而言之:一个字符类匹配类中定义的单个字符,应用于该类的量词定义将匹配多少个这样的字符。实际上,您需要一个分组构造,而不是一个char类(正如我前面提到的)。这就是我要找的,您是一个天才的Wiktor!非常感谢你!