次のようなことを試すことができます:
preg_replace('/\b\S\s\b/', "", $subject);
これが意味することは次のとおりです。
\b # Assert position at a word boundary
\S # Match a single character that is a “non-whitespace character”
\s # Match a single character that is a “whitespace character” (spaces, tabs, and line breaks)
\b # Assert position at a word boundary
アップデート
Raduによって提起されたように、私は\S
this を使用したので、単なるa-zA-Z
. にもマッチし0-9_
ます。通常、これはそれよりもはるかに多く一致しますが、前に があるため、\b
単語の文字にしか一致しません。
Tim Pietzckerのコメントで述べたように、件名の文字列で のような単語以外の文字が続く単一の文字を削除する必要がある場合、これは機能しないことに注意してくださいtest a (hello)
。このように1文字の後に余分なスペースがある場合も倒れます
test a hello
ただし、式を次のように変更することで修正できます\b\S\s*\b