我知道正则表达式不一定是这项工作的最佳工具,但我想知道这是否可以用Java regexen实现:
假设我有一个数据集,其名称由换行符分隔,如下所示:
John Doe
Jane Roe
Richard Miles
(在实际系统中自然有 lot 更多名称)
我将阅读数据,我将分别得到名字和姓氏,但它们不一定是相同的顺序。
现在,问题是,是否有任何方法可以为理查德·迈尔斯(Richard Miles)构建一个与“迈尔斯·理查德”和“理查德·迈尔斯”相匹配的正则表达式?我知道有很多其他方法可以做到这一点,但我特别想找到一个基于正则表达式的解决方案(不是因为它必然实用,但我觉得它很有趣)
编辑以澄清:我的意思是我需要一个正则表达式,比如“理查德迈尔斯”,它将匹配“理查德迈尔斯”和“迈尔斯理查德”,最好不仅仅是(Richard Miles|Miles Richard)
因为那里的乐趣在哪里?
这绝不应该是实用的,我只关心regexen是否可以做这样的事情。
答案 0 :(得分:2)
它需要复杂而聪明吗?我的意思是这可行。
\b(Miles Richard|Richard Miles)\b
答案 1 :(得分:1)
是的,请看一下: -
^(\\w+)\\s(\\w+)$
它会匹配开头(^\\w+)
后的单词,后跟空格(\\s)
,后跟另一个单词(\\w+$)
你只是在寻找这个吗?