Notepad ++:使用正则表达式搜索和替换

时间:2013-10-31 19:10:20

标签: regex notepad++

我在Notepad ++中有数以千计的条目(混合在其他文本中),我试图删除任意2个数字之间的短划线符号。

我有这样的数据:

text text this is text here
234-5678
this is more text here 
123-4585 this is more text here
or text is here too 583-5974

期望的结果:

text text this is text here
2345678
this is more text here 
1234585 this is more text here
or text is here too 5835974

我试过了:

Find: [0-9]-[0-9] (which works to find the (#)(dash)(#)
Replace: $0, $1, \1, ^$0, "$0", etc.

2 个答案:

答案 0 :(得分:3)

试试这个正则表达式。

(?<=\d)-(?=\d)

答案 1 :(得分:2)

你的方法有什么问题:

Find: [0-9]-[0-9] (which works to find the (#)(dash)(#)
Replace: $0, $1, \1, ^$0, "$0", etc.

当您的查找正则表达式没有任何内容时,$0$1等是否会引用捕获的组。如果你这样做会有用:

Find: ([0-9])-([0-9])
Replace: $1$2

$1将包含第一个数字,$2包含第二个数字。

当然,现在使用edi_allen's answer中的外观((?<= ... )是一个积极的外观,(?= ... )是一个积极的前瞻)也可以工作并避免使用反向引用的麻烦({ {1}}和$1)。

$2包含整场比赛。 $0包含第一个捕获的组,$1包含第二个捕获的组。