0

我正在努力构建一个正则表达式来捕获以 tw (或 Tw 或 TW )开头的单词,无论它们是否在引号之间(单引号或双引号)。到目前为止,'\b[tT][wW][a-zA-Z0-9]*' 捕获了所有 tw、Tw 和 TW 起始词,但错过了 btw 单引号或双引号中的那些。它同时找到 tweeple 和 TWEEPLE,但没有找到 'tweeple' 和 "TWEEPLE"。

非常感谢帮助。

4

1 回答 1

2

您的\b字符串中的 被解释为退格字符,而不是\b被正则表达式引擎解释为单词边界的序列。将您的字符串更改为原始字符串文字或转义反斜杠,它应该可以工作:

>>> re.findall(r'\b[tT][wW][a-zA-Z0-9]*', ' "TWEEPLE" tweeple ')
['TWEEPLE', 'tweeple']

这是差异的示例:

>>> 'abc\b'
'abc\x08'
>>> print 'abc\b'
abc
>>> r'abc\b'
'abc\\b'
>>> print r'abc\b'
abc\b
于 2012-04-05T16:25:29.003 回答