notepad ++ regex仅在两个特定字符之间替换字符的每个出现

时间:2018-02-01 11:05:30

标签: regex replace notepad++

我想仅在文本中的两个特定字符之间替换字符的每个出现。

例如,这里我想在两个引号之间替换每个出现的空格或变音符号;也用于多个链接:

$('body').on('shown.bs.popover', function (e) {
    $(".select2").select2("destroy").select2();
});

所以我想得到以下文字:

1. Here is a <a href="#foö bar   foo bär">link</a> for foö bar and foo bär.
2. Here is a <a href="#foö bar   foo bär">link</a> for foö bar and foo bär.
3. Here is a <a href="#foö bar   foo bär">link</a> for foö bar and foo bär.

我在考虑更换这样的东西:

1. Here is a <a href="#fooe_bar_foo_baer">link</a> for foö bar and foo bär.
2. Here is a <a href="#fooe_bar_foo_baer">link</a> for foö bar and foo bär.
3. Here is a <a href="#fooe_bar_foo_baer">link</a> for foö bar and foo bär.

使用:

(?<="[^"]*)\(s+?)(?=[^"]*")|(?<="[^"]*)(ä)(?=[^"]*")|...

但是,后视镜中的量词并不起作用。 提前谢谢......

2 个答案:

答案 0 :(得分:1)

(\s+)(?![^"]*(?:"[^"]*")*[^"]*$)

您可以通过前瞻使用它。参见演示。

https://regex101.com/r/JLANJC/1

答案 1 :(得分:0)

这应该可以解决问题

作为'搜索'你采取:

"(.*)((ä)|(ö)|(ü)|(ß)|(\s))(.*)"

作为'替换'你采取

"\1(?2(?3ae)(?4oe)(?5ue)(?6sz)(?7_))\8"

编辑: 添加了失踪的变音符号