[英]regex substitute several special characters with other special characters in Textwrangler
字符̈(unicode 0x308)不能以“西方(ISO Latin 9)”编码表示。
我需要在许多txt文件中替换几(3)个特殊字符。 理想的情况是我在Mac上运行的TEXTWRANGLER编辑器应用程序的一个正则表达式命令,因此可以在Textwrangler的find&replace函数中使用(类似于BBedit)。
这是3个特殊字符:
(请注意,第一个字母保留两个字符(例如a和unicode 0x308),因此它不是WESTERN ISO LATIN兼容的。
我尝试了正则表达式(组),但未成功:在TEXTWRANGLER中,我使用了find&replace函数(包括grep = regex选项)
查找:(ä|ö|ü)+
替换:\\1ä,\\2ö,\\3ü
任何想法?
我刚刚用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.