Python三中的简单正则表达式可替换'|'之间的文本和'/'符号

时间:2019-03-11 12:08:31

标签: python regex

我想替换'|'之间的文本和字符串(“ |伊士曼柯达公司/”)中的'/'与'!!!'。

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)

每次字符串不变时。

1 个答案:

答案 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 伊士曼柯達公司|!!!/

Online Python Demo