2017-06-14 1 views
0

完全な名前を分割する必要があります。私はこの質問が繰り返し尋ねられていることを知っていますが、私は必要な解決策を見つけることができません。正規表現、すべての姓を1つのグループに分割する

https://regex101.com/r/PvDIPA/1

私はフルネーム持っている:「ファーストネームMiddlename姓」

をそして私はグループ1

に置くことが最初の名前以外のすべての必要がある私は、この正規表現を試してみました。( \ S + \ S *)$しかし、それはグループ1に「姓」しか入れていません。グループ1には「ミドルネーム姓」が必要です。

私はあなたが助けてくれることを願っています。

答えて

0

単純なものをお探しですか、(\s+\S*){2}$https://regex101.com/r/PvDIPA/2

これは、誰かが1つのミドルネームを持っている場合にのみ機能することに注意してください。

おそらくこれは、あなたがより良いスーツ:私は//gmフラグでregex101を使用しておりますので、私はここに\hの代わり\sを使用している^\w+((?:\h+\w+)+)$ https://regex101.com/r/PvDIPA/4

注ので、\sも行末に結果をマッチしているだろう最初の試合でも2番目のラインを食べました。

0

[^ ]+ +((?:\w+ *){1,2})

See demo

使用

[^ ]+ +にすべてを一致し、空白文字の任意の

((?:\w+ *){1,2})キャプチャ1または2の発生の最初の出現を含みますアルファゼロ以上のスペース文字が続く数字文字(外側ブラケットはキャプチャグループであり、?:と内側ブラケットは、非捕捉基であるデモページでより完全な説明を参照)

は、よりを可能にします名前の間に存在する1つのスペースよりも大きい。

関連する問題