Regex 用正则表达式替换版权日期
我正在尝试编写一个正则表达式,我可以在搜索和替换对话框中使用它来更新大量AssemblyInfo.cs文件中的版权日期 版权要么有一系列日期,要么只有一个日期。日期周围的关联文本也各不相同Regex 用正则表达式替换版权日期,regex,Regex,我正在尝试编写一个正则表达式,我可以在搜索和替换对话框中使用它来更新大量AssemblyInfo.cs文件中的版权日期 版权要么有一系列日期,要么只有一个日期。日期周围的关联文本也各不相同 [assembly: AssemblyCopyright("Copyright © 2008 - 2010 My Company.")] [assembly: AssemblyCopyright("Copyright © 2008 My Company.")] [assembly: AssemblyCop
[assembly: AssemblyCopyright("Copyright © 2008 - 2010 My Company.")]
[assembly: AssemblyCopyright("Copyright © 2008 My Company.")]
[assembly: AssemblyCopyright("Copyright © 2005 - 2010 My Company.")]
[assembly: AssemblyCopyright("Copyright © 1999")]
到目前为止,我的正则表达式是
Find: (\D*\d\d\d\d) *-*\d*(\D*)
Replace: $1 - 2011$2
从我的结果可以看出,第二行在2011年和我的公司之间缺少一个空格
[assembly: AssemblyCopyright("Copyright © 2008 - 2011 My Company.")]
[assembly: AssemblyCopyright("Copyright © 2008 - 2011My Company.")]
[assembly: AssemblyCopyright("Copyright © 2008 - 2011 My Company.")]
[assembly: AssemblyCopyright("Copyright © 2008 - 2011")]
我做错了什么?我认为这与懒惰/贪婪的表达有关 这应该可以做到:
Find: (.*?\d{4})(\s*-\s*\d{4})?(.*)
Replace: $1 - 2011$3
你可以在网上试试。很有魅力。唯一需要注意的是,任何拥有2011年版权的东西,都会变成2011-2011年版权。我不确定是否可以用正则表达式解决这个问题,所以我只是在事后做一个双过程来解决这些问题。