用Notepad ++和regex替换匹配的字符串

时间:2014-07-10 09:56:31

标签: regex replace notepad++

我在文本文件中有一些行:

Joëlle;Dupont;123456
Alex;Léger;134234

我想用以下方式替换它们:

Joëlle;Dupont;123456;joelle.dupont@mail.com
Alex;Léger;134234;alex.leger@mail.com

我想用重音符号(é,ë...)替换所有带有重音符号(e,e ...)的字符,但仅在邮件地址上替换,仅在行的一部分。< / p>

我知道我可以使用\L\E将大写字母改成小写字母,但这不是我必须做的唯一事情。

我用过:

(.*?);(.*?);(\d*?)\n

将其替换为:

$1;$2;$3;\L$1.$2@mail.com\E\n

但它不会用重音代替字符:

Joëlle;Dupont;123456;joëlle.dupont@mail.com
Alex;Léger;134234;alex.léger@mail.com

如果你知道如何用Notepad ++做到这一点,即使有多个替代品,也许你可以帮助我。

1 个答案:

答案 0 :(得分:2)

我不了解您的整个人口,但您可以使用以下内容将e的变体替换为e

[\xE8-\xEB](?!.*;)

并替换为e

[我从this webpage得到了上面的范围,取了列名]

regex101 demo

此正则表达式匹配任何èéêë,如果没有e则将其替换为;在它之后的同一行。


适用于o的变体:

[\xF2-\xF6](?!.*;)

对于c(只有一个,所以你也可以直接输入ç):

\xE7(?!.*;)

a

[\xE0-\xE5](?!.*;)