-2

名前のイニシャルと姓を抽出する必要がある名前の膨大なリストがあります。以下のサンプル名を参照してください。

T.-P. SU
H. SPRONG
G. VAN MEER
C. PERRONE CAPANO
EC PARKER-ATHILL
RJ BALICE-GORDON
DB VAZQUEZ SANROMAN
BPC CHEN
JP BENNETT, Jr
T.-K. クッコ・ルクヤノフ

期待される出力:

TP SU
H SPRONG
G VAN MEER
C PERRONE CAPANO
EC PARKER-ATHILL
RJ BALICE-GORDON
DB VAZQUEZ SANROMAN
BPC CHEN
JP BENNETT JR
TK KUKKO-LUKJANOV
Split 関数を使用してそれらを分割しました。それらを正しく解析するためのより良いREGEXの方法はありますか.提案してください.

ありがとう。

4

2 に答える 2

2

次の正規表現は、サンプル データで機能します。

((?:[A-Z][-. ]+)+) ([- A-Z]+(?:, \w+)?)

例: http://www.rubular.com/r/cM87Prp2to

グループ 1 が名、グループ 2 が 2 番目の名前になります。これにより、次のグループが作成されます。これらのいずれかが期待どおりでない場合は、質問をより詳細に編集してください。

T.-P. SU -> (T.-P.) (SU)
H. SPRONG -> (H.) (SPRONG)
G. VAN MEER -> (G.) (VAN MEER)
C. PERRONE CAPANO -> (C.) (PERRONE CAPANO)
E. C. PARKER-ATHILL -> (E. C.) (PARKER-ATHILL)
R. J. BALICE-GORDON -> (R. J.) (BALICE-GORDON)
D. B. VAZQUEZ SANROMAN -> (D. B.) (VAZQUEZ SANROMAN)
B. P. C. CHEN -> (B. P. C.) (CHEN)
J. P. BENNETT, Jr -> (J. P.) (BENNETT, Jr)
T.-K. KUKKO-LUKJANOV -> (T.-K.) (KUKKO-LUKJANOV)
于 2012-09-26T16:17:56.277 に答える