字符串的正则表达式不以“/ *”开头

时间:2012-01-05 17:18:50

标签: regex

什么正则表达式匹配所有字符串,除了以文字/*开头的字符串,意味着斜杠(U+002F)后跟一个星号(U+002A)?

我已经尝试^.*[^/\*],但它似乎对我不起作用。

4 个答案:

答案 0 :(得分:9)

您可以使用否定前瞻:

^(?!/\*).*

这将匹配所有内容,除非它以/*开头。

或者除了/*之外的任何其他内容:

^[^/*].*

答案 1 :(得分:0)

编辑:这是为了匹配以/*以外的字符开头的字符串 - 源于误读问题。忽略这一点。

^[^/*].*

^字符串的开头
[^/*] /*以外的任何字符 .*个更多字符(

答案 2 :(得分:0)

开头的.*匹配任何东西。您只需要将not块移到开头:

^[^/*].*

答案 3 :(得分:-1)

应该只需要

^[^/*]

$ echo -e "*red\n/green\nblue"
*red
/green
blue
$ echo -e "*red\n/green\nblue" | egrep "^[^/*]"
blue

如果你肯定需要匹配至少有两个字符的行,你可以使用^[^/*].+