如果我有一堆这样的文字
The cat sat on the mat
Expropriations for international monetary exchange ( Currenncy: Dollars,
Value: 50,000)
The cat sat on the mat
Expropriations for international monetary exchange ( Currenncy: Yen)
The cat sat on the mat
我是否可以在文本编辑器(Jedit)的“查找/替换”功能中使用正则表达式来识别以单词Expropriations
开头的所有行和以右括号结束,然后将这些行放在方括号中,使它们看起来像这样:
The cat sat on the mat
[Expropriations for international monetary exchange ( Currenncy: Dollars,
Value: 50,000)]
The cat sat on the mat
[Expropriations for international monetary exchange ( Currenncy: Yen)]
The cat sat on the mat
棘手的是,右括号可能会落在与“征收”一词相同的行尾或下一行的末尾。 (在括号关闭之前,甚至可能有多行)
答案 0 :(得分:2)
你可以匹配:
^(Expropriations[\d\D]*?\))
并将其替换为:
[$1]
\d\D
匹配任何包含换行符的单个字符。
答案 1 :(得分:0)
如果您可以指定正则表达式选项,请尝试激活“单行”。 这样,正则表达式不关心换行符。
答案 2 :(得分:0)
Jedit是否支持使用多行正则表达式进行搜索和替换?
以下是使用python脚本实现此目的的方法。
要点是设置正则表达式的DOTALL('s'
)和MULTILINE('m'
)标志。
import re
str = """The cat sat on the mat
Expropriations for international monetary exchange ( Currenncy: Dollars,
Value: 50,000)
The cat sat on the mat
Expropriations for international monetary exchange ( Currenncy: Yen)
The cat sat on the mat"""
regex = re.compile(r'^(Expropriations.*?\))', re.S|re.M)
replaced = re.sub(regex, '[\\1]', str)
print replaced
猫坐在垫子上 [国际货币兑换的征收(Currenncy:Dollars,
价值:50,000)]
猫坐在垫子上 [国际货币兑换征收(Currenncy:Yen)]
猫坐在垫子上