用RegEx替换版权日期

时间:2011-04-08 22:04:24

标签: regex

我正在尝试编写一个正则表达式,我可以在搜索和替换对话框中使用它来更新大量AssemblyInfo.cs文件中的版权日期。

版权要么有一系列日期,要么有一个日期。日期周围的相关文本也各不相同。

[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")]

我做错了什么?我认为这与懒惰/贪婪的表达有关。

1 个答案:

答案 0 :(得分:1)

这应该这样做:

Find: (.*?\d{4})(\s*-\s*\d{4})?(.*)
Replace: $1 - 2011$3

您可以在线试用here