我需要在它之前找到沒有給定字符串的所有字符串。正則表達式:查找/替換所有沒有給定字符串的子串之前?
比如:
Find: "someValue"
**與 「功能(」 他們應該被忽略之前的所有結果
Visual Studio的正則表達式會發現這種:
value = someValue
和忽略看起來像這樣的東西:
function(someValue)
什麼是最好的方式去做這件事?
感謝您的幫助!
我需要在它之前找到沒有給定字符串的所有字符串。正則表達式:查找/替換所有沒有給定字符串的子串之前?
比如:
Find: "someValue"
**與 「功能(」 他們應該被忽略之前的所有結果
Visual Studio的正則表達式會發現這種:
value = someValue
和忽略看起來像這樣的東西:
function(someValue)
什麼是最好的方式去做這件事?
感謝您的幫助!
你可以使用負向後看:
(?<!function\()someValue
你說
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