python正则表达式不会在\ b之后使用特殊字符,例如r" \ b @"

时间:2017-07-10 09:34:58

标签: python regex special-characters

就像标题所说的那样,当正则表达式为r"\b@"r"\b#"或其他类似情况时,字符串"blabla @blabla"将与模式不匹配。

在python代码中:

re.findall(r"\b@", "blabla @blabla")

并返回[ ]

这让我很困惑,任何人都知道这里发生了什么

1 个答案:

答案 0 :(得分:-1)

因为在@之前不存在单词字符。首先,您必须了解\b的工作(它匹配单词字符\w和非单词字符\W之间的边界,反之亦然)。

此处的字符存在于@ space之前,而@不是单词字符。因此它与特定的\B@符号不匹配。

您可以尝试\B,其中\b>>> re.findall(r"\B@", "blabla @blabla") ['@'] >>> re.findall(r"\b@", "blabla s@blabla") ['@'] >>>

相反
C#