0

現在、PHP サーバーの正規表現で問題が発生しています。

これは私の現在の正規表現です:

/\{content="(?:([^"\|]*)\|?)+"\}/

そして、私はそれを一致させたい:

{content="default|test|content|text"}

そして、マッチでこれを返します:

default
test
content
text

しかし、現在それを実行すると、試合でこれが返されます:

array (
  0 => '{content="default|test|content|text"}',
  1 => '',
)

私が間違っていることに問題がありますか?

よろしくお願いいたします。

ユーリ・アークテスタイン

4

2 に答える 2

1

1行の正規表現を使用してそれがどのように可能かわかりません。とにかく、次のコードを試してください。

<?php
if (preg_match('/\{content="(?:([^\"]+))"\}/', $sContent, $matches) > 0) {
    $result = explode('|', $matches[1]);
} else {
    $result = array();
}

echo '<pre>' . print_r($result, true) . '</pre>';
?>
于 2013-05-30T09:59:04.183 に答える