我的问题是,在大型应用程序上,我必须更改每个dll中的所有程序集文件,并且有一百多个。我想使用文本编辑器中的“查找并替换”来更改这两行:
[assembly:AssemblyProduct(“ DllsName”)]更改为[assembly:AssemblyProduct(“ s”)]
[assembly:AssemblyVersion(“ 1.0”)]更改为[assembly:AssemblyVersion(“ 1.xxx”)]
其中xxx
是一个固定数字,而DllsName
在每个文件中都不相同。
我是正则表达式中的白腰带,但我认为这是最好的方法:使用正则表达式选择要更改的部分,然后替换它。不幸的是,对于所有这些[
,"
,(
个字符,我不太确定如何编写此表达式,也不知道如何更改该DllsName
,因为它是每个文件都不一样。
所以我的问题是:是否可以使用正则表达式更改所有文件?如何更改?
答案 0 :(得分:1)
batchID-00002
和
\[assembly: AssemblyProduct\("[^"]*"\)\]
如何将正则表达式替换应用于多个文件:What's the best tool to find and replace regular expressions over multiple files?
答案 1 :(得分:1)
使用Notepad ++,您可以通过按Ctrl + H然后在底部选中“正则表达式”来搜索/替换正则表达式。
用“ s”替换每个DLL名称:
查找:(AssemblyProduct\(")[^"]+("\))
替换为:\1s\2
要将所有DLL版本替换为“ 1.777”,
查找:(AssemblyVersion\(")1.0("\))
替换为:\11.777\2
您转义(
的原因是因为没有转义,它只会尝试创建一个要记住的字符组(如果可以,可以在\ 1或\ 2的替换字符串中重用该字符组。第一个或第二个捕获组)。 "
不是与(
和[
相反的正则表达式命令,因此无需使用\
对其进行转义。
我建议搜索[^“] +(每个非”字符)而不是。*(所有字符),因为正则表达式很贪婪,并且很高兴知道您是否要将命令重用于其他应用程序。>
上获取任何正则表达式的详细内容。