gpt4 book ai didi

regex - 用 perl regex 替换一些变音符号

转载 作者:行者123 更新时间:2023-12-01 03:39:26 25 4
gpt4 key购买 nike

我想用它们的 ASCII 等价物替换文件中包含的一些变音符号。请注意,我不想删除所有变音符号:只删除每行第一个“@”字符之前的那些。

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

(\\glossaryentry\{(\w|\s|\.)*)(é|è|ê|ë|É|È|Ê|Ë|ē)+

它适用于在线测试仪,如 www.regex101.com/和 Notepad++ !

但是当我在 Windows 命令行中输入时没有任何改变:
perl -pi -i.bak -e "s/(\\glossaryentry\{(\w|\s|\.)*)(é|è|ê|ë|É|È|Ê|Ë|ē)+/$1e/g" a.glo

(fwiw,在我的系统上,perl 是 v.5.20.2)

a.glo:

\glossaryentry{AHRF@ {\memgloterm{AHRF}}{\memglodesc{Annales historiques de la Révolution française}} {\memgloref{}}|memjustarg}{1}

\glossaryentry{Ass. plén.@ {\memgloterm{Ass. plén.}}{\memglodesc{Assemblée plénière}} {\memgloref{}}|memjustarg}{1}

\glossaryentry{Ch. réun.@ {\memgloterm{Ch. réun.}}{\memglodesc{Chambres réunies}} {\memgloref{}}|memjustarg}{1}

\glossaryentry{chron.@ {\memgloterm{chron.}}{\memglodesc{chronique}} {\memgloref{}}|memjustarg}{1}

\glossaryentry{Circ. min.@ {\memgloterm{Circ. min.}}{\memglodesc{Circulaire ministérielle}} {\memgloref{}}|memjustarg}{1}

\glossaryentry{éd.@ {\memgloterm{éd.}}{\memglodesc{édition, édité par}} {\memgloref{}}|memjustarg}{1}

\glossaryentry{Int J Semiot Law@ {\memgloterm{Int J Semiot Law}}{\memglodesc{International Journal for the Semiotics of Law - Revue internationale de sémiotique juridique}} {\memgloref{}}|memjustarg}{1}

\glossaryentry{Oxford J Legal Studies@ {\memgloterm{Oxford J Legal Studies}}{\memglodesc{Oxford Journal of Legal Studies}} {\memgloref{}}|memjustarg}{1}

\glossaryentry{préc.@ {\memgloterm{préc.}}{\memglodesc{précité}} {\memgloref{}}|memjustarg}{1}

\glossaryentry{Rev. adm.@ {\memgloterm{Rev. adm.}}{\memglodesc{Revue administrative}} {\memgloref{}}|memjustarg}{1}

最佳答案

我在 Windows 盒子上试过这个,它有效。
我认为该文件必须以其正确的编码打开。
我将您的文本示例保存为 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

 # (\\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}]+

关于regex - 用 perl regex 替换一些变音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31905432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com