字符̈(unicode 0x308)无法用“Western(ISO Latin 9)”编码表示。
我需要在许多txt文件中替换这些特殊字符中的几个(3)。理想的是我在Mac上运行的TEXTWRANGLER编辑器应用程序的单个正则表达式命令,因此我可以在Textwrangler的find& replace函数中使用(类似于BBedit)。
以下是3个特殊字符:
(请注意第一个字母仍然存在两个字符(例如a和̈unicode 0x308),因此它不是WESTERN ISO LATIN的兼容性。
我尝试了正则表达式(群组),但我没有成功: 在TEXTWRANGLER中我使用find& replace函数(包括grep = regex选项)
发现:(ä|ö|ü)+
REPLACE:\1ä,\2ö,\3ü
任何想法?
答案 0 :(得分:0)
我刚用 Notepad ++ 对此进行了测试,但我不确定这是否适用于任何Mac文本编辑器替代方案。
此方法是使用正则表达式中的字典的条件替换。它更像是一个黑客,但它确实有效,假设它受到文本编辑器的支持。完成后,从文件底部删除字典。
(ä|ö|ü)(?=[\s\S]*Dictionary:[\s\S]*\1=([^\s=:]+))
替换
\2
ä into a
ö into o
ü into u
此输入包括最后的字典
ä into a
ö into o
ü into u
Dictionary:
ä=a
ö=o
ü=u
a into a
o into o
u into u
Dictionary:
ä=a
ö=o
ü=u
(ä|ö|ü)
将组中的任一角色捕获到捕获组1 (?=[\s\S]*Dictionary:[\s\S]*\1=([^\s=:]+))
确定后续匹配的正向前瞻
[\s\S]*
多次匹配任何字符Dictionary:
从字面上匹配Dictionary:
(这可以更改为任何内容,但您应该确保这是一个独特的字符串,不会出现在您输入的任何其他位置)[\s\S]*
多次匹配任何字符\1
匹配与第一个捕获组最近匹配的文本相同的文本=
字面匹配等号字符=
([^\s=:]+)
捕获集合中不存在的任何字符(不是空白,=
或:
)中的一个或多个捕获组2