使用正则表达式替换并保留结果

时间:2015-03-11 13:45:53

标签: regex replace notepad++

我想更换每一个' by - 当'在两个字母之间:

[A-ZA-Z]' [A-ZA-Z] 通过 [A-ZA-Z] - [A-ZA-Z]

示例:  " N' Guyen" => " N-Guyen"

但我得到" -uyen"

2 个答案:

答案 0 :(得分:2)

试试这个:

找到:([a-zA-Z])'([a-zA-Z])

替换为:\1-\2

\1\2分别指代捕获组([a-zA-Z])([a-zA-Z])

答案 1 :(得分:0)

最好只替换一个字符,而不是之前和之后的所有字。所以你需要使用正面的lookbehind和lookahead断言:(?<=[a-zA-Z])'(?=[a-zA-Z])替换为-

演示:https://regex101.com/r/kU0xV0/1