Regex 不以“quot”开头的字符串的正则表达式/*&引用;

Regex 不以“quot”开头的字符串的正则表达式/*&引用;,regex,Regex,什么正则表达式匹配所有字符串,除了以literal/*开头的字符串,表示斜杠(U+002F)后跟星号(U+002A) 我尝试过^.*.[^/\*],但它似乎对我不起作用。您可以使用负面前瞻: ^(?!/\*).* 这将匹配所有内容,除非它以/*开头 或者如果您的意思是除/或*以外的任何内容: ^[^/*].* 编辑:这用于匹配以字符开头的字符串,而不是由于误读问题而产生的/和*。忽略这一点 ^[^/*].* ^字符串的开头 [^/*]除/和* *更多字符(开头的*匹配任何内容。您只需将非块

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


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

您可以使用负面前瞻:

^(?!/\*).*
这将匹配所有内容,除非它以
/*
开头

或者如果您的意思是除
/
*
以外的任何内容:

^[^/*].*

编辑:这用于匹配以字符开头的字符串,而不是由于误读问题而产生的
/
*
。忽略这一点

^[^/*].*
^
字符串的开头
[^/*]
/
*


*
更多字符(

开头的
*
匹配任何内容。您只需将
块移到开头:

^[^/*].*

^[^/*]
应该是您所需要的全部:

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

如果您确实需要匹配至少两个字符的行,您可以使用
^[^/*].+

谢谢您的接受,您介意告诉我如何使用//(单行注释)或这一点吗?这意味着不以/*或/@smallB开头,您可以简单地或向前看:
^(?!/\*./.
^(?!/\*./[/*])。
^(?)
是您所需要的一切。如果我是您,我会使用“/x模式”使其易读。因此,请使用
(?x)作为前缀
或使用正确的模式编译标志。这是Java中的
模式。注释
,或许多语言中的
/x
。@tchrist它取决于你想用正则表达式做什么。如果你想捕获或替换它,你需要一些东西。如果你只是想测试你是对的。不幸的是,OP没有告诉你到底是哪个用例。我希望您不要试图从某些内容中过滤掉注释,因为这些注释可能从任何地方开始并跨越多行。这是不正确的;*被允许作为第一个字符,而不是作为/@triplee同意后的第二个字符。我将问题误读为以字符以外的任何字符开头的字符串d
*
-多亏了编辑,问题现在清楚了。