2

文字列を「トークン」に分割するために、次のことに遭遇しました。

$tokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);

これがこれとどう違うのか誰か説明してくれませんか:

$tokens = explode(' ', $string);

どんな助けでも大歓迎です:-)

4

2 に答える 2

5

あなたが提供した正規表現:

$tokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);

ダッシュ(-)、アンダースコア(_)、文字(小文字または大文字)、または数字ではない区切り文字を使用して、入力文字列をトークンに分割します。

一方:

$tokens = explode(' ', $string);

区切り文字として空白を使用して、文字列をトークンに分割するだけです。

于 2011-12-05T16:56:20.277 に答える
2

の文字通りの読み[^\-_A-Za-z0-9]+は次のとおりです。

-または_、または文字AからZ(大文字かどうか)または数字ではない1つ以上の個々の文字に一致します。

preg_split上記との一致に基づいて入力を分割しますがexplode、空白文字でのみ分割します。preg_split分割されるが分割されない正規表現から除外されていない他の文字があるexplodeため、結果の配列は異なる可能性があります。

于 2011-12-05T17:00:32.897 に答える