如果在输入时名称中没有找到以下任何内容(不区分大小写),我正在尝试返回匹配项:
博士 博士 先生 先生。 太太 太太。 女士 女士。 小姐 和 + &安培; PHD 锶 高级 JR JR。
它还需要在上面两侧寻找空格,以便不匹配“Drake”或“Missy”等。
我不是很好的正则表达式并且在regexbuddy中尝试这个也是有效的..任何人都可以帮忙吗?到目前为止我的工作还可以,但是在前面有一个字符串,但有人可以进入丹尼斯博士丹尼斯并且没事......
^\s*(?!(?:(\s*)Dr|Mr|Mrs|Miss|Ms)\b).*?$
答案 0 :(得分:1)
您可以使用以下正则表达式:
/(?:^|\W)(?:(?:Dr|Mr|Mrs|Ms|Sr|Jr)\.?|Miss|Phd|\+|&)(?:\W|$)/i
/(?!.*?(?:^|\W)(?:(?:Dr|Mr|Mrs|Ms|Sr|Jr)\.?|Miss|Phd|\+|&)(?:\W|$))^.*$/i
答案 1 :(得分:1)
怎么样?
^\s*(?!(?:Dr|Mr|Mrs|Miss|Ms)\.?\b)(?!.*\b(?:\+|&|PHD|Sr|Jr)(?:(?:\.\B)|\b)).*?$
我在你的正则表达式中添加了第二部分
(?!.*\b(?:\+|&|PHD|Sr|Jr)(?:(?:\.\B)|\b))
这会在字符串中的某个地方查找前后字边界的内容,除非它以点结尾,然后是非字边界。