私は午後中ずっとこの正規表現の振る舞いをグーグルで調べてきました。
$str = ' b c d w i e f g h this string';
echo preg_replace('/\s[bcdefghjklmnopqrstuvwxyzBCDEFGHJKLMNOPQRSTUVWXYZ]{1}\s/', ' ', $str);
1 つの文字 (A と I を除く) のすべてのインスタンスを単独で削除し、その場所に 1 つのスペースを残したいと考えています。このコードは、他のすべての一致で機能するようです。これは、試合が重なり合っているためだと思います。
ここではルックアラウンドが適切だと思いますが、これまで使用したことがなく、スニペットを使用できます。
編集:私が達成しようとしていることについての混乱を避けるためです。上記の文字列をこれに変えたい:
$str = ' i this string';
「A」または「I」以外のすべての単一文字が削除されていることに注意してください。