私は、テキストファイルをループするセクションを持ち、システムユーザーの姓と名を抽出するPerlプログラムを作成しています。ただし、一部のユーザーアカウントでは、ミドルネームまたはミドルネームにピリオドを使用することがあります。たとえば、以下の3つの文字列では、John(名)とSmith(姓)のみに一致させようとしています。 (もしあれば)私は最初のミドルネームを/保存したくない:フルネームと任意のミドルネームを一致させるための正規表現
ジョン・スミス
ジョンA.スミス
ジョン・アンドリュー・スミス
私のような何かをしようとしています:私が読んで、最初の単語(名)を取得し、任意の文字に続いて、オプションのスペース(ミドルネーム)、その後、スペースのフォローを持って
(\w+)(?:\s.*\w)?\s(\w+).*
最後の単語(姓)によって編集されます。しかし、これは動作していないと私は何か解決策を考え出すことができていない。
ご協力いただきましてありがとうございます。
あなたはいくつかの部分、例の姓からforenameと一部の違いにすることはできませんので、不可能な何かをしようとしている:ジャン・フランソワ・ド・ラ・モット・デ・Chanteracは」、「ブトロス・ブトロス=ガーリを」 "私は、フィールドを区切ってフォームを作成することをお勧めします。 –
見てください:https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ – Toto