2009-12-07 71 views
2

有没有人知道如何编码正则表达式(用于某些类似grep的工具),它将搜索单词'vat',但不包括单词'pri vat e'。我接管了一个项目,其中有数百个增值税参考(一些硬编码,有些没有),并且由于英国的增值税税率在1月1日发生变化,我需要以正确的税率更新项目源文件。在Visual Studio中全局搜索“vat”这个词的时候,它也会返回包含一个private void定义的行。正则表达式否定问题

除此之外,我需要搜索'15'(当前的增值税率),但我想排除任何在'15'之前或之后有任何数字的行。例如,0.15或15或15%是正确的,015或150或15a将是错误的。

正如你可以想象这是手动完成的任务,所以任何帮助都将不胜感激。

感谢,

+1

增值税率(15)是否有可能改变?如果是这样,你打算设置一个变量吗? – 2009-12-07 22:56:08

+0

不需要复杂的正则表达式。伪代码:如果在字符串中添加大括号,而不是在字符串中添加* vat * e,则执行一些操作。 – ghostdog74 2009-12-07 23:32:39

回答

1

使用Visual Studio(我读你事先做过)你可以使用:

对于增值税

〜(PRI)大桶〜(e)中(这也将排除如果期望 '瓦泰岛' 因此只需取下〜(E))

而对于15

[^ 0-9a- z] 15 [^ 0-9a-z]

VS用于查找和替换的正则表达式语法与您的标准正则表达式不一样,不知道MS为什么要这样做,但他们做到了。

+0

谢谢,这正是我一直在寻找的! – tt83 2009-12-07 22:50:09

5
/\bVAT\b/ 

/\b(0\.)?15%?\b/ 

最后允许像 “0.15%”,但这些应该足够少后过滤掉。正则表达式不是最好的工具,像“10 + 5”这样的表达式呢?但是,如果它满足您的需求,它至少易于使用!

+2

+1我会链接一个xkcd卡通,但这已经变得如此陈词滥调...... – 2009-12-07 22:29:31

0

难道你不能搜索“增值税”(空间增值税空间)?

+0

不幸的是,在这种情况下不起作用,因为我试图搜索例如可能是'vat_rate'的变量定义。 – tt83 2009-12-07 22:47:14