2010-10-06 57 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

相关问题