2017-02-09 37 views
0

我想修改版权年份。替换整数旁边的正则表达式(regexp)变量

这就是我要找的字符串:

Copyright Company XXX YYY ZZZ 1999 - 2010 

我搜索这个字符串与正则表达式:

([cC]opyright([A-Za-z ]?){0,}[0-9]{4}([A-Za-z ])?(-)?([A-Za-z ])?)[0-9]{4} 

我想2017年更换的第二年,但以$ 12017不更换显然不工作。 2017年1美元增加了我不想要的空间。

什么是替换表达式得到

Copyright Company XXX YYY ZZZ 1999 - 2017 

的事情是,它可能不总是YYYY - YYYY(与他们之间有一个空格)。这可能是YYYY-YYYY,YYYY -YYYY等等

+0

取决于正则表达式的风味。尝试'$ {1} 2017'' –

+0

'$ 1(2017)''也可以工作(在Notepad ++中工作) – Deltharis

+0

在NPP中,POSIX类反向引用应该可以工作,'\ 12017' –

回答

0

直接回答我的问题很简单:

${1} 

谢谢大家!

0

如何:

  • 查找:(?i)(copyright .+?\d{4}\s*-\s*)\d{4}$
  • 替换:${1}2017

或:

  • 找到:(?i)copyright .+?\d{4}\s*-\s*\K\d{4}$
  • 替换:2017
+0

'(?i)(?= copyright。+?\ d {4} \ s * - \ s *)\ d {4} $'正则表达式是错误的,它永远不会匹配。 –

+0

@WiktorStribiżew:是的 – Toto