python - 需要一个可以使用特殊字符(连字符、撇号等)验证名称的 python 正则表达式
问题描述
我正在尝试创建一个可以匹配任何名称的 python 正则表达式。我正在抓取一个网页并寻找<h1>
标签并在它之间抓取名称。名字可以包括James Dean、James-Dean、Brian O'Quin、Jame Joe-Harden等...
这是我一直在使用的第一个正则表达式,但它并没有捕捉到所有的名字
<h1>[A-Z]{1}[a-z]+\s[A-Z]{1}[']?[A-Z]?[-]?[A-Z]?[a-z]+
解决方案
也许是这样:
<h1>(([-'\w]+\s?)+)<h1>
解释:
-匹配自身,\ w匹配字母和数字,加号是捕获这些事件中的一个或多个。此外,在此之后是可选的空格字符,以支持组合名称。
最后,最后一个+加号确保您可以重复我刚刚描述的结构。
希望这有帮助。