我正在尝试使用正则表达式来识别以
开头的名称Mr.|Mrs.
例如
Mr. A, Mrs. B.
我尝试了几个表达式。这些正则表达式在pythonregex.com的在线工具上进行了检查。使用的测试字符串是:
"hey where is Mr A how are u Mrs. B tt`"
提到的输出是Python的findall()
函数,即
regex.findall(string)
regex
的各自输出低于。{/ p>
Mr.|Mrs. [a-zA-Z]+ o/p-[u'Mr ', u'Mrs']
为什么A和B没有与先生和夫人一同出现?
[Mr.|Mrs.]+ [a-zA-Z]+ o/p-[u's Mr', u'. B']
为什么要先与先生而不是A?
我尝试了更多组合,但这些令人困惑,所以这里是他们。对于名称部分,我知道正则表达式必须涵盖更多条件,但是从基本开始。
答案 0 :(得分:3)
如下所示更改正则表达式
(?:Mr\.|Mrs\.) [a-zA-Z]+
Mr\.
,Mrs\.
放入非捕获或捕获组中,以便|
(OR)适用于组本身。.
是正则表达式中的一个特殊元字符,它匹配除换行符之外的任何字符。或强>
更短的一个,
Mrs?\. [a-zA-Z]+
上面的 ?
量词使前一个字符s
成为可选字符。
答案 1 :(得分:0)