2013-03-06 91 views
1

一个特定的字符串我想否定字符串的否定的正则表达式

* .INFO

我怎样才能做到这一点?

我已经试过

^(?!.*\*\.INFO).*$ 

,但它无法正常工作。

+0

您能详细说明“不能工作吗?”这是什么语言,你能给出一些测试字符串和一些你已经试过的示例代码吗?它似乎工作正常,如果你在这里插入它:http://regexpal.com/ – jrajav 2013-03-06 11:57:19

+0

定义“否定”。你的意思是除了'* .INFO'以外的任何东西,或者任何不包含*'* .INFO'的东西? – Bohemian 2013-03-06 12:02:55

+0

我在一个lex文件中写这个规则。测试文件如下所示:* \ n * .ABCD \ n * .MNC a = 10 \ n * .INFO A B C D \ n start。现在我只想忽略从*开始的字符串。除了* .INFO。所以我需要定义一个规则来标识从*开始的所有字符串。除了* .INFO。 @波希米亚所以我的意思是从*开始的任何事情。除了* .INFO。 – user2114865 2013-03-07 04:52:52

回答

0

您是接近正确

^(?![*][.]INFO).*$ 

你可以测试它here

+0

我试过这种模式。 – user2114865 2013-03-07 04:38:19

+0

但错误消息是“无法识别的规则” – user2114865 2013-03-07 04:38:47

+0

@ user2114865只是修改它 – VladL 2013-03-07 07:02:38

0

根据您最近的评论,这种匹配任何开始*.除了*.INFO

\*\.(?!INFO\b)\S+ 

注意,通过增加\bINFO这个会垫ch*.INFO开头的字符串,但后跟其他字符,例如*.INFOXYZ

+0

它显示错误为“无法识别的规则” – user2114865 2013-03-07 05:40:42

+0

也许你的工具无法识别环视 – Bohemian 2013-03-07 05:56:16

+0

那你能不能建议我该怎么办?我在unix工作 – user2114865 2013-03-07 06:09:42