繁体   English   中英

re.sub():我想用一些字符串替换数字后面的单词列表

[英]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.

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