具有特定前缀/后缀的单词的正则表达式

2024-05-15 11:42:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我只想匹配单词,如果单词两边最多有一个野生字符,后面是空格,或者两边都没有。例如,我希望ring匹配'ring'、'ring'、'tring'、'ring'、'ringt'、'ringt'、'ring'、'tringt'、'tringt'

但不是: 'ttring','ringttt','ttringtt'

到目前为止,我已经:

[?\s\S]ring[?\s\S][?!\s]

有什么建议吗


Tags: 字符单词建议空格ringtringttringttttring
1条回答
网友
1楼 · 发布于 2024-05-15 11:42:17

如果我理解正确,这应该是:

(?:^|\s)\S?ring\S?(?:\s|$)
  • (?:^|\s)-此非捕获组确保模式前面有空格或开头

  • \S?匹配零个或一个非空白字符

  • ring匹配文字ring

  • (?:\s|$)-零宽度正向前瞻确保匹配前面有空格或在末尾

示例:

In [92]: l = ['ring ', ' ringt', ' ringt ', ' ring ', \
              'tringt ', 'tringt ',  'ttring', 'ringttt', 'ttringtt']

In [93]: list(filter(lambda s: re.search(r'(?:^|\s)\S?ring\S?(?:\s|$)', s), l))
Out[93]: ['ring ', ' ringt', ' ringt ', ' ring ', 'tringt ', 'tringt ']

相关问题 更多 >