正则表达式问题与特定字符串

时间:2015-01-26 13:37:04

标签: regex string parsing

我必须解析一个不一致的字符串,这些是字符串的格式:

1SURNAME/NAMEMR (The last two or three chars are MR/MRS/MS/DR)
1SURNAME/NAME MR
or
1SURNAME/NAME

我需要使用正则表达式捕获此序列,并且我构建了这个序列: 1[A-Z]*\/[A-Z]*[\s]?[[MRS|MR|MS|DR]+

但是对于这个名称,它仅适用于:

1SMITH/GEORGEMR
1SMITH/GEORGE MR

但不适用于1SMITH/GEORGE

任何人都知道这里出了什么问题?

1 个答案:

答案 0 :(得分:1)

将最后一部分放入非捕获组,并通过在该组旁边添加?量词来使其成为可选项。

\b1[A-Z]*\/[A-Z]*\s?(?:MRS|MR|MS|DR)?\b

DEMO