Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在VB.Net中高效地替换所有和到AndAlso_Regex_Visual Studio 2015_Replace - Fatal编程技术网

Regex 在VB.Net中高效地替换所有和到AndAlso

Regex 在VB.Net中高效地替换所有和到AndAlso,regex,visual-studio-2015,replace,Regex,Visual Studio 2015,Replace,我有其他人编写的代码,由于某些情况下不使用AndAlso关键字,很容易出现NullReferenceException 我的目标是简单地用VisualStudio的regex finder替换所有这些和到AndAlso的。我对正则表达式的了解是中等的,但我正在努力构建一个覆盖大多数情况的正则表达式 这里是要考虑的案例✓ 标记应更换的部件,并: 和✓ 富和 “福和 富吧和✓ 富吧和巴兹✓ 福吧巴兹和库克斯 还有福和✓ 一, 1请注意,带有2个有效And的行也必须起作用 我已经想出了这个正则表达式:

我有其他人编写的代码,由于某些情况下不使用AndAlso关键字,很容易出现NullReferenceException

我的目标是简单地用VisualStudio的regex finder替换所有这些和到AndAlso的。我对正则表达式的了解是中等的,但我正在努力构建一个覆盖大多数情况的正则表达式

这里是要考虑的案例✓ 标记应更换的部件,并: 和✓ 富和 “福和 富吧和✓ 富吧和巴兹✓ 福吧巴兹和库克斯 还有福和✓ 一,

1请注意,带有2个有效And的行也必须起作用

我已经想出了这个正则表达式:?:^ |?:和?:[^']*?:[^]*[^']**和

它似乎做了我想要的,但你可能已经知道这是非常不有效的,而且它会导致我的VS在通常1或2场比赛后挂起。我想这可能会导致灾难性的回溯


什么正则表达式可以有效地完成这项任务?

我试图提出一种更简单的模式,并提出以下建议:

(?<="")( And )|(?<=")( And )(?!.*?\")

现场检查。

老实说,我会小心以自动方式执行此操作,而是希望查看代码。@JoelCoehoorn我知道有很多情况可能会出现问题,但使用版本控制,如果出现任何问题,我将无法恢复,我将知道出了什么问题。我有超过30k行的代码,我不会一行一行地修改。我还确保以前的开发人员不会执行按位操作,因此不需要and和Or。这很好。我仍然会担心这样的情况:如果通常是虚假的,并导致重要的副作用,那么。。。突然重要的副作用停止了。这在一开始并不完全是一种好的做法,但旧的和旧的表达方式也不一样。如果我们对代码质量有信心,我们就不会陷入这样的混乱。您仍然可以使用find函数以代码为目标进行检查,现在您的搜索更容易了,因为一些误报不会引起问题。非常正确,肯定会重新运行测试。谢谢你提到这样一个有问题的案例。