あなたは、文字列から単語や1+桁のチャンクで最初のASCII文字の配列を取得使用する必要がある場合
preg_match_all('~\b[a-zA-Z]|\d+~', $str, $matches);
くださいPHP demo:
$str = "This is a example word and 3512987 ID registered..";
preg_match_all('~\b[a-zA-Z]|\d+~', $str, $matches);
print_r($matches[0]);
あなたかもしれ後でimplode
(例えば、implode("", array_map('ucfirst', $matches[0]))
、demoを参照してください)。
詳細:
\b[a-zA-Z]
- ワード境界
|
で始まるASCII文字 - または
\d+
- 1+数字。
、任意のUNICODE文字と正規表現の作品を作る\p{L}
Unicode category class文字パターンと[a-zA-Z]
を交換し、正しくUnicode文字列とPCREとして入力文字列を処理するためにpreg_
機能が有効になりますu
UNICODEモディファイアを追加するにはegnineも\p{L}
扱いとUnicodeを認識パターンとして\b
ます:
preg_match_all('~\b\p{L}|\d+~u', $str, $matches);
^^^^^ ^
\d
もプレーンASCIIデジではありません、一致する数字を開始することに注意してくださいtsは0
から9
までです。あなたはそれを防ぎたい場合はその後、代わりに[0-9]+
を使用します。
preg_match_all('~\b\p{L}|[0-9]+~u', $str, $matches);
^^^^^
あなたは明確にしてくださいでした:あなたは言葉や数字チャンクの最初の文字から成る文字列を取得したいですか? –
['preg_match_all( '〜\ b [a-zA-Z] | \ d +〜'、$ str、$ matches);'](https://ideone.com/9ffeg6)はどうですか? –
@WiktorStribiżewはい、最初に書き込まれる文字は完全に書き込まれる数字です –