Python Three 中的简单正则表达式,用于替换 '|' 和'/'符号之间的文本



我想替换'|'之间的文本and'/'在字符串(" |伊士曼柯达/")中使用'!!!'。

s = '柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|伊士曼柯达公司/'
print(s)
s = re.sub(r'|.*?/.', '/!!!', s)
print('t', s)

我首先在https://regex101.com/上测试了代码,并且效果很好。

我无法完全弄清楚为什么它没有在Python中进行替换。

逃脱的变体我也尝试过:

s = re.sub(r'|.*?/.', '!!!', s)
s = re.sub(r'|.*?/.', '!!!', s)
s = re.sub(r'|.*?/.', '!!!', s)

每次字符串不变。

您可以将其正则拨号更改为此句,它使用loughounds来确保要替换的内容是|之前的,然后是/

(?<=|).*?(?=/)

检查此Python代码,

import re
s = '柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|伊士曼柯达公司/'
print(s)
s = re.sub(r'(?<=|).*?(?=/)', '!!!', s)
print(s)

像您期望的那样打印,

柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|伊士曼柯达公司/
柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|!!!/

在线python demo

最新更新