2017-02-09 40 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