Skip to main content
 首页 » 编程设计

python之带有\b 和非单词字符的正则表达式(如 '.' )

2025年05月04日26jirigala

为什么这个正则表达式: r'^(?P<first_init>\b\w\.\b)\s(?P<mid_init>\b\w\.\b)\s(?P<last_name>\b\w+\b)$' 不匹配 J. F. Kennedy ?

我必须删除 \b在组中first_init和 mid_init来匹配单词。 我正在使用 Python。为了测试,我正在使用 https://regex101.com/

谢谢

请您参考如下方法:

您过度应用了 \b 分词符。

\b 将仅匹配如果一侧有一个有效的“单词”字符而另一侧没有。现在你使用这个结构两次:

\b\w\.\b\s 

.. 没错,它不匹配,因为在左侧你有一个非单词字符(一个句号)而在另一侧你也有一个非-单词字符(一个空格)。

删除句点和 \s 之间的 \b 就足以让它工作了。