【发布时间】:2018-12-27 09:50:09
【问题描述】:
我正在尝试使用 RegEx 从文本中获取以下模式:
John Doe
JOHN DOE
Sam John Watson
Sam John Lilly Watson
SAM JOHN WATSON
SAM JOHN LILLY WATSON
输入数据仅包含单行,我需要在其中找到上述模式。
更多关于模式
- 每个单词都以大写字母开头,后跟大写或小写
- 最少 2 个字
- 最多 4 个字
- 单词将仅包含 A-Z 或 a-z 字符
我尝试了什么:
import re
re.findall("[A-Z][A-Za-z]+ [A-Z][A-Za-z]+ [A-Za-z]* [A-Za-z]*", text)
这将正确识别输入,例如:
Sam Peters John Doe
SAM WINCH DAN BROWN
但输入少于 4 个单词时失败。
【问题讨论】:
-
如果这是一个真实系统而不是编程练习,可能值得一读Falsehoods Programmers Believe About Names