我需要在它之前找到没有给定字符串的所有字符串。
For Instance:
Find: "someValue"
**所有带有“function(”之前的结果都应该被忽略
Visual Studio正则表达式会找到此:
value = someValue
忽略这样的内容:
function(someValue)
最好的方法是什么?
感谢您的帮助!
答案 0 :(得分:2)
你可以使用负面的后视:
(?<!function\()someValue
答案 1 :(得分:2)
你说
Visual Studio正则表达式会找到:
结合您问题的标题,这让我觉得您正在尝试在Visual Studio中搜索和替换对话框,而不是在应用程序中使用正则表达式。
如果是这样,那么我认为你可能会失去运气; Visual Studio的正则表达式不是很强大,而且它们的语法相当奇怪,似乎没有在其他任何地方使用过!
我的建议是使用不同的文本编辑器,或者在.NET应用程序(或PowerShell脚本)中使用SilentGhost描述的正则表达式来替换你。当我需要在编辑器中执行正则表达式并且Studio不会删除它时,我倾向于使用TextPad。它不是很漂亮,但它功能强大,并且具有很好的宏支持。
顺便提一下,如果您想使用PowerShell执行此操作,则会搜索foo.js
,并将输出复制到fooNew.js
:
(get-content D:\junk\foo.js) -replace
'(?<!function\()someValue', 'someOtherValue' > D:\junk\fooNew.js