【问题标题】:python regex with optional multiple groups带有可选多个组的python正则表达式
【发布时间】:2017-06-21 16:57:16
【问题描述】:

我正在尝试匹配一些模式,但似乎无法成功。

我要匹配的模式是:

David C. Drummond
Sundar Pichai
Julie Spellman Sweet

我需要一个匹配所有 3 个组的正则表达式。

到目前为止,我尝试过的是:r"^(\w*)\W?(\w*|\w\.)\W?(\w*)",单词之间的空格有很多变化(\s\b),空格后面有贪婪和非贪婪符号(?)。

【问题讨论】:

  • 你的模式应该匹配所有这些。实际上,您的模式匹配每个有开头的字符串(即所有字符串),因为其中的所有其他内容都是可选的。
  • 但它并不匹配所有这些。

标签: regex regex-group


【解决方案1】:

对于您显示的字符串,您可以使用^(\w+)\s+(?:(\w\.|\w+)\s+)?(\w+)$ 来匹配它们,并将名字、中间名和姓氏包含在 3 个不同的组中,第二个是可选的。

https://regex101.com/r/O8NniM/1

【讨论】:

  • 它有效,但正如 melpomene 所说,我的正则表达式应该有效,但它没有。你能解释一下为什么你的工作有效吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-06
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
相关资源
最近更新 更多