我们该如何编写一个正则表达式,说明“如果中间出现破折号,则匹配失败”
我有几行组成为3958.3r-5v,有些没有破折号,例如:3958.3v4r。我能够得到带有破折号的那些,而不仅仅是那些没有破折号的
答案 0 :(得分:2)
这可以通过字符类否定来实现。字符类开头的^
会否定字符类。如果只有字符-
,则创建一个仅与-
匹配的字符类。
^[^\-]+$
根据您所说的内容,您需要将^(字符串的开头)放在模式的前面,并转义.
,否则您不仅会匹配.
395[0-9]
,但任何字符都像3950z
。
^395[0-9]\.[^-]+$