1
我有一個字符串,如果它有兩個或多個單字符單元,我想合併它們(「JR EWING」 - >「JR EWING」)Perl正則表達式:合併多個單字符子串
我使用這個:
$temp =~ s/\b(\w) (\w)\b/$1$2/g;
但它當然失敗了「霍夫曼」。有什麼想法嗎?
我有一個字符串,如果它有兩個或多個單字符單元,我想合併它們(「JR EWING」 - >「JR EWING」)Perl正則表達式:合併多個單字符子串
我使用這個:
$temp =~ s/\b(\w) (\w)\b/$1$2/g;
但它當然失敗了「霍夫曼」。有什麼想法嗎?
s{\b((?:\w)+\w)\b}{ ($1 =~ s/ //gr }eg; # 5.14+
s{\b((?:\w)+\w)\b}{ (my $s = $1) =~ s/ //g; $s }eg;
在這種特殊情況下,您可以使用前視。
s/\b\w\K (?=\w\b)//g; # 5.10+
s/(?<=\b\w) (?=\w\b)//g;
您可以使用一個前瞻,這樣第二個字母是不匹配和正則表達式引擎的一部分可以繼續工作:
$temp =~ s/\b\w\K (?=\w\b)//g;
\K
放棄所有從左邊整場比賽。
Jinx!我同時在你的貼子上添加了我的答案! – ikegami