正则表达式处理名称时遇到未知问题

问题描述 投票:0回答:1

我正在解析具有奇怪复合形式的名称字符串。 当前给我带来问题的阵型是这些名字:

Edward St. Loe Livermore
Henry St. George Tucker III
Henry St. John

此模式

(.*)(St\.\s\w+)\s(.*)
解析前两个名称并完全忽略第三个。

此模式

(.*)(St\.\s\w+)|(St\.\s\w+\s(.*))$
也返回第三个名字,但省略前两个的姓氏。

我正在使用 https://regex101.com/ 来测试正则表达式模式

到目前为止,我无法弄清楚什么模式会返回所有三个名字的匹配中的姓氏, 或者如果我需要在代码中执行条件语句来分别解析三个元素名称,这似乎效率低下。

蒂亚

regex regex-group
1个回答
0
投票

使用这个正则表达式:

(.*)(St\.\s\w+)\s*.*

在线演示

© www.soinside.com 2019 - 2024. All rights reserved.