正则表达式用于中间名和姓氏是可选的名称.(蟒蛇)



我正在尝试匹配不包含任何特殊字符的空格分隔名称。名字是强制性的,中间名和姓氏是可选的。此外,名称可以全部大写,但不能全部小写,每个名称(名字、中间名、姓氏)的第一个字符是大写字母。

我正在使用以下正则表达式,但它似乎不起作用:

"[A-Z]\w+\

s(?:[A-Z]\w+?:)?\s(?:[A-Z]\w+?:)?"

编辑:这就像一个宝石: "[A-Z]\w+(?:\s[A-Z](\w+)?)?(?:\s[A-Z](\w+)?)?"

你想要的是

^[A-Z]w+(?:s[A-Z]w+?)?s(?:[A-Z]w+?)?$

匹配字符串的开头和结尾(如果您的名字是自己来的)。否则,如果它嵌入到文本中,那么你想要类似的东西

s[A-Z]w+(?:s[A-Z]w+?)?s(?:[A-Z]w+?)?[s.,;:]

最新更新