6

文字列の最初の2つの単語(文字、数字、コンマ、その他の句読点を含めることができますが、空白、タブ、新しい行を含めることはできません)のみに一致する正規表現が必要です。私の解決策は、次の([^\s]+\s+){2}ようなものと一致する場合です:'123 word' * in '123 word、hello' *、2語だけで、後にスペースがない文字列では機能しません。

このタスクの正しい正規表現は何ですか?

4

3 に答える 3

5

あなたはそれをほぼ正しいと思います:

([^\s]+\s+[^\s]+)

使用する文字をより強力に制御する必要がないと仮定します。

2つの単語の両方、または1つの単語のみを一致させる必要がある場合は、次のいずれかを使用できます。

([^\s]+\s+[^\s]+|[^\s]+)
([^\s]+(?:\s+[^\s]+)?)
于 2012-10-12T21:12:14.793 に答える
2

単語を一致させようとする代わりに、空白の文字列を。で分割することができますpreg_split()

于 2012-10-12T21:12:58.377 に答える
1

本当に数字と文字だけを許可したい場合[^\s]は、十分に制限されていません。これを使って:

/[a-z0-9]+(\s+[a-z0-9]+)?/i
于 2012-10-12T21:11:35.287 に答える