2010-10-06 88 views
0

我們需要在所有文件中用'XYZ'(dummied)替換單詞'ABC'(dummied)。我們有數百個可能包含該詞的aspx/ascx/cs/xml/xsl文件。正在搜索文件中的特定單詞

的要求是

  1. 如果是(例如ABC.A1.A2不應該被取代)命名空間的一部分或變量名(VAR ABC =「」)或標籤不更換字(ABC:控制)。 (在我的cs文件中,如果我有一個與我正在查找的單詞相同的變量名,它不應該被替換,如果我有一個字符串,例如var str =「ABC是好產品」在這種情況下應該被替換

這將是1次活動如何解析給定單詞的整個文件並在滿足條件時將其替換?正則表達式。

任何其他的想法是非常感謝。難道一個工具已經存在,做這個?我試圖谷歌,但找不到這樣的工具。

+0

你對單詞的定義是什麼?你需要考慮標點符號嗎?一個「單詞」是否可以包含標點符號?例如:'學生'' – 2010-10-06 19:01:01

+0

還剩什麼?如何區分'洞詞'和'變量名'? – 2010-10-06 19:03:43

+0

我的例子中的單詞是一個特定的單詞,說'abc'。我正在尋找硬編碼值和字符串文字。所以標點符號並不重要。 – AlwaysAProgrammer 2010-10-06 19:04:57

回答

2

PowerGREP這樣的工具總是有幫助的。與RegexBuddy一起,你有一個強大的工具集,它有助於學習正則表達式並掌握每一個正則表達式的挑戰。

1

調查您是否可以將需求轉換爲正則表達式。一次可能只有一種文件類型。
然後,不要編寫程序,而要使用現有的工具(SED)。

但是你的一些規則看起來很複雜。

2

如果這確實是一次性活動,我會投票選擇使用Visual Studio Search/Replace,即使它是一堆解決方案。爲什麼要重新發明輪子,尤其是因爲,現實中,第一次更正確地做到這一點的可能性更大,並且必須手動撤消數百次更改。

如果您使用源代碼控制(您確實使用源代碼管理,對吧?),我會高度建議在您檢查文件之前對文件進行差異化,無論您使用什麼解決方案。

+0

好點Wonko。我無法使用VS搜索替換功能,因爲aspx文件不是解決方案的一部分。但可能是一個可行的事情 – AlwaysAProgrammer 2010-10-06 19:14:13

+0

您仍然可以在VS打開ASPX文件(剛落,他們拋棄在打開IDE),並在所有打開的文檔查找/替換。 – 2010-10-06 19:18:00

+0

我明白你在說什麼了。這可能是一個可行的方案。 :) – AlwaysAProgrammer 2010-10-06 19:19:52

相關問題