就像标题所说的那样,当正则表达式为r"\b@"
,r"\b#"
或其他类似情况时,字符串"blabla @blabla"
将与模式不匹配。
在python代码中:
re.findall(r"\b@", "blabla @blabla")
并返回[ ]
这让我很困惑,任何人都知道这里发生了什么
答案 0 :(得分:-1)
因为在@
之前不存在单词字符。首先,您必须了解\b
的工作(它匹配单词字符\w
和非单词字符\W
之间的边界,反之亦然)。
此处的字符存在于@
space
之前,而@
不是单词字符。因此它与特定的\B@
符号不匹配。
您可以尝试\B
,其中\b
与>>> re.findall(r"\B@", "blabla @blabla")
['@']
>>> re.findall(r"\b@", "blabla s@blabla")
['@']
>>>
C#