2011-07-26 10 views
0

複数のトークンを識別しますPHPの正規表現は、私は、テキストのセクションに次のトークンを識別しますPHPで正規表現を作成する必要が

[video:1] 
[video:2] 

私が使用しているコードは

preg_match("/\[video:[12]{1}\]/", $text, $matches); 

です私は '[video:'と ']'の後に1文字か2文字のいずれかの文字を持つことができると考えています。私が持っている問題は、2つ目のトークンがテキストに含まれていれば、2番目のトークンを識別しないということです。どちらかが最初のものであればどちらかを識別しますが、両方がテキストの場合は2番目のものではありません。

私のテキストセクションで両方のトークンを特定するにはどうすればよいですか?

ありがとうございました。

答えて

4

グローバル検索とキャプチャにはpreg_match_all()を使用する必要があります。

また、リテラル文字を一致させる必要がある場合は、正規表現の構文を正しくエスケープしてください。

/\[video:[12]\]/ 

注:あなただけの1 1または2に一致しているので、それが不要であるように私はまた、数量詞を削除しました。

+0

あなたが上に置いたものが私が持っていたもの(除去された{1}量子化器なし)に一致するので、エスケープに関するあなたの言い回しは分かりませんが、これはうまくいきました。ありがとう。 – wonder95

+0

ようこそ。元の投稿はエスケープしていませんでした。 ** Felix Kling **は私の答えの後にそれらを加えました。 –

+0

ちょうどFYI、バックスラッシュはそこにあった。 Felixがコードの書式設定を適用する前に、それらは表示されませんでした。このようなことは、質問に編集を開始してから、著者が私に見せたいと思っていることを確かめるためです。 –