[英]re.sub(): I would like replace list of words following number with some string
想要替换单词列表中的文本,后跟数字。
list1 = ['apple', 'orange']
text = 'the books are good apple34'
word = re.sub(r'|'.join(list1)+[0-9],ball,text)
re.sub
应该看起来像
re.sub(rf"(?:{'|'.join(map(re.escape, list1))})\d+", 'ball', text)
或者,如果您需要全字匹配:
re.sub(rf"\b(?:{'|'.join(map(re.escape, list1))})\d+\b", 'ball', text)
甚至
re.sub(rf"(?!\B\w)(?:{'|'.join(map(re.escape, list1))})\d+\b", 'ball', text)
如果list1
项目可以以非单词字符开头。 请参阅在线 Python 演示。
细节
(?!\B\w)
- 左手自适应动态词边界(?:{'|'.join(map(re.escape, list1))})
- 与list1
中定义的字符串之一匹配的非捕获组(每个字符串都用re.escape
转义)\d+
- 一位或多位数字\b
- 单词边界。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.