首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3中的简单正则表达式,用于替换'|‘和'/’符号之间的文本

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

Stack Overflow用户
提问于 2019-03-11 20:08:31
回答 1查看 46关注 0票数 0

我想将字符串("|伊士曼柯达公司/")中'|‘和'/’之间的文本替换为‘!’。

代码语言:javascript
复制
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中进行替换。

我尝试过的转义变体还包括:

代码语言:javascript
复制
s = re.sub(r'|.*?\/.', '!!!', s)
s = re.sub(r'|.*?/.', '!!!', s)
s = re.sub(r'\|.*?/.', '!!!', s)

每次字符串都原封不动地出来。

EN

回答 1

Stack Overflow用户

发布于 2019-03-11 20:48:46

您可以将正则表达式更改为这个正则表达式,它使用查找来确保要替换的内容前面是|,后面是/

代码语言:javascript
复制
(?<=\|).*?(?=/)

查看这段Python代码,

代码语言:javascript
复制
import re

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

你想要的指纹,

代码语言:javascript
复制
柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|伊士曼柯达公司/
柯達⑀柯达⑀ /Kodak (brand, US film company)/full name Eastman Kodak Company 伊士曼柯達公司|!!!/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55101554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档