ミドルネームのイニシャルに「.」が付いている名前がフィールドにたくさんあります。最後に..
この例を変換するには、正規表現が必要です: Kenneth
R.
を
Kenneth
にPerl と正規表現が初めてで、"...$" しか取得できませんでした。名前の末尾に中間のイニシャルがない場合、これは役に立ちません....
考慮が必要な別の名前形式を見つけました... 'R. ケリー」は「ケリー」である必要があります
ミドルネームのイニシャルに「.」が付いている名前がフィールドにたくさんあります。最後に..
この例を変換するには、正規表現が必要です: Kenneth
R.
を
Kenneth
にPerl と正規表現が初めてで、"...$" しか取得できませんでした。名前の末尾に中間のイニシャルがない場合、これは役に立ちません....
ドットで終わる最後の「単語」を削除するには:
my $name =~ s/\w+\.$//i;
(これは、その後にスペースがないことを前提としています)
ドットで終わる単語を削除するには:
my $name =~ s/\w+\.//i;
それらをすべて削除したい場合は、 /g 修飾子を見てください...
ところで、ソリューションを確認するためのテストケースリストを自分で作成してから、実際の単語データで試してみると、おそらく驚きが生じるでしょう...
R. Kelly のケースを処理するには:
s/\w\. *//g
簡単なテストは次のとおりです。
$ echo 'R. Kelly
Kenneth R.
R. Kemp R.
John Q. Smith' | perl -pe 's/\w\. *//g'
Kelly
Kenneth
Kemp
John Smith
私はそれを提案します:
g
) は必須です。i
) は違います。[:upper:]
) のイニシャルのみを検索することを検討してください。w+
データに関連するケースがない限り、おそらく間違いです。)perldoc perlre
については、こちらをお読みください。