繁体   English   中英

用记事本++和正则表达式替换内部匹配的字符串

[英]Replace inside matched string with Notepad++ and regex

我在文本文件中有几行:

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 ...)的字符,但仅在邮件地址上 ,仅在行的一部分上。

我知道我可以使用\\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 ++做到这一点,即使有多个替代品,也许您也可以帮助我。

我不知道您的总体人口,但是您可以使用以下代码将e的变体替换为e

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

并替换为e

[我从此网页获得以上范围,并带有列名]

regex101演示

此正则表达式匹配任何èéêë ,如果没有则用e代替; 在同一行之后。


对于o变体:

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

对于c (只有一个,因此您也可以直接输入ç ):

\xE7(?!.*;)

对于a

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM