【发布时间】:2013-08-04 12:56:38
【问题描述】:
我将在 Ultraedit 中删除“(1978)”、“(2003)”等字符串的括号。其实我知道如何使用正则表达式定位这些字符串:\(\d{4}\),但我不知道如何删除括号。任何帮助,将不胜感激。
【问题讨论】:
-
在你的系统上安装 perl,然后执行: perl -pi -e 's!(\d+)!$1/g' filename
我将在 Ultraedit 中删除“(1978)”、“(2003)”等字符串的括号。其实我知道如何使用正则表达式定位这些字符串:\(\d{4}\),但我不知道如何删除括号。任何帮助,将不胜感激。
【问题讨论】:
找到以下模式:
\((\d{4})\)
并将其替换为:
^1
见Regular expression for Ultraedit
^1
对标记表达式的数字引用。与标记匹配的文本 表达式可以用这种格式替换命令。
^1 对应于其他正则表达式引擎中的\1 或$1(反向引用)。
【讨论】:
perl engine?我使用$1 而不是^1。总而言之,非常感谢您的帮助。
您应该能够像这样在正则表达式中定义捕获组:
\((\d{4})\)
注意未转义的括号。然后,您可以使用\1 或$1 在替换字符串中使用捕获的文本。我不确定这两个 UltraEdit 中的哪一个使用。两者都试一下,看看有什么效果。
【讨论】: