非单词字符结尾处的单词边界无效

时间:2018-08-24 12:03:55

标签: python regex

>>> import re
>>> re.findall(ur'(?i)fizz\<buzz\>\b', u'fizz<buzz> - ANGLES', re.U)
[]

>>> re.findall(ur'(?i)fizz\<buzz\>', u'fizz<buzz> - ANGLES', re.U)
[u'fizz<buzz>']

该模式还必须匹配fizzbuzz之类的字符串,即实际的仅完整单词的字符串,但不能匹配其他单词。如果不允许在非单词字符后使用\b,怎么办?

1 个答案:

答案 0 :(得分:0)

如果您知道模式以非单词字符结尾,则可以使用非单词边界\B。如果不确定,可以使用先行(?!\w)来确保其后的内容不是文字字符。