名称的正则表达式,其中中间名和姓氏是可选的。 (蟒蛇)

时间:2016-03-08 14:33:22

标签: python regex

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

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

" [A-Z] \ W + \ S(?:[A-Z] \ W + ?:)\ S(?:[A-Z] \ W + ?:)?"

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

1 个答案:

答案 0 :(得分:0)

你想要的是

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

匹配字符串的开头和结尾,如果你的名字来自。否则,如果它嵌入在文本中,那么您需要类似

的内容
<property>
  <name>dfs.name.dir</name>
  <value>/home/username/pseudo/dfs/name</value>
</property>

<property>
  <name>dfs.data.dir</name>
  <value>/home/user/pseudo/dfs/data</value>
</property>