2

このようなテキストの () の間に入り、それらを配列に入れたいのですが、内部にネストされた括弧がいくつかある場合があります。

文章:

(This (is) a example) (on what i want)

次のように処理する必要があります。

$array["this (is) a example"] = "on what i want";

これどうやってするの?

4

1 に答える 1

0
$s = '(This (is) a example) (on what i want)';

unset($matches);
preg_match_all('/^\\((.*)\\)[ \\t]+\\((.*)\\)$/', $s, $matches);
$array[$matches[1][0]] = $matches[2][0];

var_dump($array);

これが可能なのは、.*貪欲で、パターン全体が確実に一致するようにしながら、括弧内の最長の文字列を一致させようとするためです。

于 2012-10-21T01:00:01.183 に答える