How to say除了破折号(“-”)以外的任何字符

时间:2018-07-09 13:04:16

标签: regex

我们该如何编写一个正则表达式,说明“如果中间出现破折号,则匹配失败”

我有几行组成为3958.3r-5v,有些没有破折号,例如:3958.3v4r。我能够得到带有破折号的那些,而不仅仅是那些没有破折号的

1 个答案:

答案 0 :(得分:2)

这可以通过字符类否定来实现。字符类开头的^会否定字符类。如果只有字符-,则创建一个仅与-匹配的字符类。

^[^\-]+$

根据您所说的内容,您需要将^(字符串的开头)放在模式的前面,并转义.,否则您不仅会匹配. 395[0-9],但任何字符都像3950z

^395[0-9]\.[^-]+$