繁体   English   中英

Python 中不区分大小写的字符串替换

[英]Case insensitive string replacement in Python

为了进行多个不区分大小写的字符串替换,我使用了正则表达式模式,例如

import re
text = "Mentioning of reD, GrEen and BLUE is prohibited"
new_text = re.sub(r'(red|green|blue)', "***", text, flags=re.IGNORECASE)
print(new_text)

从列表中制作模式的最佳方法是什么(而不是手动输入)?

words_to_replace = ["red", "green", "blue"]

提前感谢您的回复!

您可以加入 pipe 角色

"|".join(["red", "green", "blue"])

如果单词本身有|这可能会失败或其他可能会破坏模式的元字符。 正则表达式注入攻击......创造一个短语。

import re
text = "Mentioning of reD, GrEen and BLUE is prohibited"
words_to_replace = ["red", "green", "blue"]
new_text = re.sub(f'({"|".join(words_to_replace)})', "***", text, flags=re.IGNORECASE)
print(new_text)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM