Python 当正则表达式中还包含(文字)句点时,如何在正则表达式中正确使用\b?

Python 当正则表达式中还包含(文字)句点时,如何在正则表达式中正确使用\b?,python,regex,python-2.7,Python,Regex,Python 2.7,我在下文中的目标是创建一个正则表达式,该正则表达式将匹配字符串“a.b.c.”(其中.是实际句点),但不匹配字符串,如“ga.b.c.h”(即“a.b.c.”部分前后的非空格字母数字字符) 我的想法是使用\b运算符,当然,我还必须在正则表达式中转义句点。Python2文档()声明\b是\w和\w之间的正式边界 我不明白为什么这个表达式不匹配: >>> reg = re.compile(r'\ba\.b\.c\.\b') >>> bool(re.match(re

我在下文中的目标是创建一个正则表达式,该正则表达式将匹配字符串“a.b.c.”(其中.是实际句点),但不匹配字符串,如“ga.b.c.h”(即“a.b.c.”部分前后的非空格字母数字字符)

我的想法是使用\b运算符,当然,我还必须在正则表达式中转义句点。Python2文档()声明\b是\w和\w之间的正式边界

我不明白为什么这个表达式不匹配:

>>> reg = re.compile(r'\ba\.b\.c\.\b')
>>> bool(re.match(reg, "a.b.c."))
False

这里有人能告诉我吗?

非单词字符和字符串结尾之间没有单词边界。

是否要匹配
a.b.c.d.e.f
?如果是,什么应该匹配,两者都匹配?对于你的例子,让我们假设只有a.b.c.会匹配。如果你不需要问题的解决方案,但需要解释单词边界是什么,你的问题不需要答案,这是一个重复。关于为什么带有
\b
的正则表达式与字符串不匹配,有很多问题。如果你需要一个问题的解决方案,修改这个问题。啊,废话。所以这是有效的:>>>>reg=re.compile(r'\ba\.b\.c\b')>>>bool(re.match(reg,“a.b.c.”)真的谢谢!正如我在下面提到的,Wiktor下面的回答对于一类相关问题来说是一个很好的解决方案。Wiktor,也许是因为我不熟悉这么多的话语惯例,但我发现你的解决方案非常有用,我认为我的具体问题与你认为我的问题是重复的问题不同。所以我很失望你从我的问题中删除了你的答案。