1

我知道正则表达式不一定是这项工作的最佳工具,但我想知道这是否可以使用 Java regexen:

假设我有一个名称由换行符分隔的数据集,如下所示:

John Doe  
Jane Roe  
Richard Miles  

(实际系统中的名字自然要多得多)

我将读取数据,我将分别获得名字和姓氏,但它们的顺序不一定相同。

现在,问题是,有没有什么方法可以为 Richard Miles 构建一个正则表达式来匹配“Miles Richard”和“Richard Miles”?我知道还有很多其他方法可以做到这一点,但我特意寻找基于正则表达式的解决方案(不是因为它一定实用,但我会觉得它很有趣)

编辑澄清:我的意思是我需要一个正则表达式,比如说,“Richard Miles”,它可以匹配“Richard Miles”和“Miles Richard”,而且最好不仅仅是(Richard Miles|Miles Richard)因为它的乐趣在哪里?

这绝不应该是实用的,我只是对正则表达式是否可以做这样的事情感兴趣。

4

2 回答 2

2

它需要复杂和聪明吗?我的意思是这会奏效。

\b(Miles Richard|Richard Miles)\b
于 2012-10-16T16:38:58.670 回答
1

是的,看看这个: -

^(\\w+)\\s(\\w+)$

它将匹配开头的一个单词(^\\w+),然后是一个空格(\\s),最后是另一个单词。(\\w+$)

你只找这个吗?

于 2012-10-16T16:38:00.583 回答