繁体   English   中英

正则表达式在Textwrangler中用其他特殊字符替换了几个特殊字符

[英]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个特殊字符:

  1. ä成ä
  2. ö成ö
  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.

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