s/(\s*\S+\s+)\S+\s*/$1/g
, кажется, доставит вас туда, сохранив пробел в начале строки и после последнего неотвеченного слова.Не ясно, хотите ли вы сохранить пробелы до или после удаленного слова (или имеет ли это значение).
foreach $a (
"1. Mn Gordon Npmsc Snell Npmsc . Fe",
"i've tried to write a regular expression modeling this,",
"but i've failed so far. any suggestions appreciated!"
) {
$_=$a;
s/(\s*\S+\s+)\S+\s*/$1/g;
print "$_\n";
}
1. Gordon Snell .
i've to a expression this,
but failed far. suggestions