Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I remove middle initial with a dot at the end?

I've got a bunch of first names in a field that carry a middle initial with a '.' at the end..

I need a regex to convert this example:

Kenneth R.

into

Kenneth

I was trying to build my own and found this useful site btw..

http://www.gskinner.com/RegExr/

but I'm new to Perl & regular expressions and could only get "...$" - which is useless when there is no middle initial at the end of the first name....


i just found another name format that needs consideration... 'R. Kelly' needs to be 'Kelly'
like image 263
CheeseConQueso Avatar asked Oct 13 '25 02:10

CheeseConQueso


1 Answers

To remove the last "word" if it ends with dot :

my $name =~ s/\w+\.$//i;

(this supposes you don't have any space after that)

To remove any word ending with dot :

my $name =~ s/\w+\.//i;

look at the /g modifier if you want to remove them all ...

and BTW make yourself a test case list to check your solution then try with real word data, you probably will get some surprises ...

like image 61
siukurnin Avatar answered Oct 14 '25 15:10

siukurnin