首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用perl regex替换一些diacritics

用perl regex替换一些diacritics
EN

Stack Overflow用户
提问于 2015-08-09 14:45:12
回答 1查看 239关注 0票数 4

我想用他们的ASCII等价物来替换文件中的一些对话词。请注意,我不想删除所有的对话:只有那些是前面的第一个"@“字符的每一行。

在以下文件的简化版本(a.glo)中,有四个"é“(粗体)可替换为"e”。我使用的(可能是丑陋的)正则表达式是:

代码语言:javascript
复制
(\\glossaryentry\{(\w|\s|\.)*)(é|è|ê|ë|É|È|Ê|Ë|ē)+

它与www.regex101.com/这样的在线测试器和notepad++!

但是,当我输入Windows命令行时,没有任何更改:

代码语言:javascript
复制
perl -pi -i.bak -e "s/(\\glossaryentry\{(\w|\s|\.)*)(é|è|ê|ë|É|È|Ê|Ë|ē)+/$1e/g" a.glo

(fwiw,在我的系统中,perl为5.20.2)

a.glo:

术语表{AHRF@{AHRF}}{\memglodesc{ la Révolution aise}}{memgloref{}memjustarg}{1} 词汇表条目{Ass.plén.@plén.}{_ 词汇表条目{Ch.réun.@{_}{\_{_ 术语表条目{chron.@{memgloterm{chron.}{memglodesc{chronique}}{memgloref{}\\memjustarg}{1} 词汇条目{Circ.@@_{_}_\ \glossaryentry{éd.@ {_ 术语表{Int J Semiot @{_{_ 术语表{Oxford J法律研究@{_{_ \glossaryentry{préc.@ {_ 术语表条目{re.adm.@@{\memgloterm{re.adm}}{\memglodesc{Revue管理}}{\memgloref{}\\memjustarg}{1}

EN

回答 1

Stack Overflow用户

发布于 2015-08-09 17:31:44

我在窗户盒上试过这个,很管用。

不过,我认为文件必须以正确的编码打开。

我把你的文本样本保存为ANSI文本。

perl -pi -i.bak -e "s/(\\glossaryentry\{[\w\s.]*)[\x{E9}\x{E8}\x{EA}\x{EB}\x{C9}\x{C8}\x{CA}\x{CB}\x{113}]+/$1e/g" a.glo

代码语言:javascript
复制
 # (\\glossaryentry\{[\w\s.]*)[\x{E9}\x{E8}\x{EA}\x{EB}\x{C9}\x{C8}\x{CA}\x{CB}\x{113}]+

 (                             # (1 start)
      \\ glossaryentry \{
      [\w\s.]* 
 )                             # (1 end)
 [\x{E9}\x{E8}\x{EA}\x{EB}\x{C9}\x{C8}\x{CA}\x{CB}\x{113}]+ 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31905432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档