2010-04-23 76 views

回答

2

你可以使用負向後看:

(?<!function\()someValue 
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