c# - 正则表达式否定问题

标签 c# regex grep regex-negation

有谁知道如何编写正则表达式(与某些类似 grep 的工具一起使用)来搜索单词“vat”,但排除单词“private”。我接手了一个项目,其中有数百个增值税引用(有些是硬编码的,有些不是),并且由于英国的增值税税率将于 1 月 1 日发生变化,我需要使用正确的税率更新项目源文件。目前,当我在 Visual Studio 中对“vat”一词进行全局搜索时,它还会返回包含 private void 定义的行。

除此之外,我还需要搜索“15”(当前增值税税率),但我想排除在“15”之前或之后有任何数字的任何行。例如,0.15 或 15 或 15% 为真,015 或 150 或 15a 为假。

正如您可以想象的那样,这不是手动完成的简单任务,因此我们将不胜感激。

谢谢

蒂姆

最佳答案

/\bVAT\b/

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

最后一个允许诸如“0.15%”之类的内容,但这些内容应该足够少以便稍后过滤掉。正则表达式并不是最好的工具,那么像“10 + 5”这样的表达式又如何呢?但如果它满足你的需求,它至少很容易使用!

关于c# - 正则表达式否定问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1863326/

相关文章:

c# - C 和 C# 互操作的问题

string - 在 UNIX 中,如何在长字符串中找到单个单词?

linux - 我需要使用 shell 脚本在 shell 脚本中第一次出现指定单词之前复制文本文件的内容。

c# - 一般创建正确具体类型的属性

c# - 什么替代了 .net 中的代码访问安全性

javascript - 动态更改跨度的文本格式

regex - 如何在Jmeter中使用正则表达式提取多个值

javascript - 如何用变量值替换所有带有特定前缀的字符串

linux - Grep nmap 输出

c# - 迭代参数,调用方法并将结果传递给另一个函数