我想替换'|'之间的文本和字符串(“ |伊士曼柯达公司/”)中的'/'与'!!!'。
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)
每次字符串不变时。
答案 0 :(得分:1)
您可以将正则表达式更改为此正则表达式,该正则表达式使用环视方法来确保要替换的正则表达式之前是|
,然后是/
(?<=\|).*?(?=/)
检查此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 伊士曼柯達公司|!!!/