1

正規表現が必ずしもこの仕事に最適なツールではないことはわかっていますが、これが Java regexen で可能かどうか疑問に思っていました。

次のように改行で区切られた名前のデータセットがあるとします。

John Doe  
Jane Roe  
Richard Miles  

(当然、実際のシステムにはもっと多くの名前があります

姓と名の両方を別々に取得するデータを読み込みますが、必ずしも同じ順序になるとは限りません。

さて、問題は、たとえば、「Miles Richard」と「Richard Miles」の両方に一致する、Richard Miles の正規表現を構築する方法があるかどうかです。これを行うには他にもたくさんの方法があることは知っていますが、特に正規表現ベースのソリューションを探しています (必ずしも実用的であるとは限りませんが、興味深いと思います)。

明確にするために編集:つまり、「リチャードマイル」と「マイルリチャード」の両方に一致する「リチャードマイル」の正規表現が必要であり、できればそれ(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 に答える