【发布时间】:2010-10-07 03:39:19
【问题描述】:
我们要求在所有文件中将单词 'ABC'(dummied) 替换为 'XYZ'(dummied)。我们有数百个可能包含该词的 aspx/ascx/cs/xml/xsl 文件。
要求是
- 如果 word 是 NameSpace 的一部分(例如 ABC.A1.A2 不应被替换)或变量名(var abc = "")或标签 (abc:control),请不要替换它。
- 只有当它是一个完整的单词时才应该替换该单词(在我的 cs 文件中,如果我的变量名称与我要查找的单词相同,则不应替换它。如果我有一个字符串文字,例如 var str = "ABC 是好产品". 这种情况下应该换掉
这将是 1 次活动。如何解析给定单词的整个文件并在满足条件时替换它?计划使用正则表达式。
非常感谢任何其他想法。是否已经存在执行此操作的工具?我已经尝试谷歌但找不到这样的工具。
【问题讨论】:
-
你对单词的定义是什么?你需要考虑标点符号吗? “单词”可以包含标点符号吗?例如:
students' -
还剩下什么?如何区分“孔字”和“变量名”?
-
@Yogendra:但是标点符号对正则表达式引擎很重要,所以您需要回答 Mark Byers 的问题。还有 Henk Holterman 的。
-
@Tim,是的,“无关紧要”通常是问题开始的方式。
-
那么,您是在
ABC's中搜索ABC并将其替换为XYZ,还是将ABC's明确替换为XYZ's?如果您要替换的单词是won,您可能不想替换won't的前三个字母,但是如何避免呢?正则表达式不知道单词;对他们来说,这只是一堆乱七八糟的人物。如果您想找到正确的问题要问,这就是您需要思考的方式。