4

すべての空白で文字列を区切るための適切な正規表現は何でしょうか? 2 つのトークンの間に複数の空白を含めることもできますが、末尾の空白は無視する必要があります。

私がこれまでに持っているもの:

<?php
$tags = "unread dev     test1   ";
$tagsArr = preg_split("/ +/", $tags);
foreach ($tagsArr as $value) {
  echo $value . ";";
}

これにより、次の出力が得られます。

"unread;dev;test1;;"

ご覧のとおり、正しい出力は次のようになるため、最後の空白は無視されません。

"unread;dev;test1;"
4

4 に答える 4

7

フラグを使用して、空のエントリを無視できますPREG_SPLIT_NO_EMPTY

$tagsArr = preg_split("/ +/", $tags, -1, PREG_SPLIT_NO_EMPTY);

デモ: http://ideone.com/1hrNJ

于 2012-08-27T20:58:30.387 に答える
6

最初にトリム機能を使用して、最後の空白を切り取ります。

$trimmed_tags = トリム($tags);

于 2012-08-27T20:58:04.007 に答える
2

最速の方法:

$tagsArr = array_filter( explode(' ', $tags) );
于 2012-08-28T00:39:10.193 に答える
0

文字列全体で空白を保持したいが、最後から削除したいようです (この最後の厄介なセミコロンを防ぐためです。これまで正しく理解していれば、これはトリム コマンドの完璧な使用法のように思えます:

http://php.net/manual/en/function.trim.php

于 2012-08-27T21:01:03.533 に答える