我想在 python 中使用正则表达式进行一些操作。
所以输入是+1223,+12_remove_me,+222,+2223_remove_me
和
输出应该是 +1223,+222
输出应该只包含逗号分隔的单词,不包含 _remove_me
并且每个单词之间只有一个逗号。
注意:我试过的正则表达式 \+([0-9|+]*)_
, \+([0-9|+] *)
和其他一些我没有得到所需输出的组合。
注意 2 我不能使用循环,只需要在没有循环的情况下使用正则表达式。
最佳答案
您的正则表达式似乎不完整,但您走在正确的轨道上。请注意,字符类中的管道符号被视为文字,您的 [0-9|+]
匹配数字或 |
或 +
符号。
你可以使用
,?\+\d+_[^,]+
参见 regex demo
解释:
,?
- 可选的,
(如果“单词”在字符串的开头,应该是可选的)\+
- 文字+
\d+
- 1+ 位_
- 文字下划线[^,]+
- 除了,
之外的 1+ 个字符
import re
p = re.compile(r',?\+\d+_[^,]+')
test_str = "+1223,+12_remove_me,+222,+2223_remove_me"
result = p.sub("", test_str)
print(result)
# => +1223,+222
关于python - 正则表达式删除python中的特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311931/