什么正则表达式匹配所有字符串,除了以文字/*
开头的字符串,意味着斜杠(U+002F
)后跟一个星号(U+002A
)?
我已经尝试^.*[^/\*]
,但它似乎对我不起作用。
答案 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
如果你肯定需要匹配至少有两个字符的行,你可以使用^[^/*].+