2016-05-11 11 views
0

私は以下の正規表現を持っています。私にMyBB - PHPの正規表現

\[rep=([0-9]*?),([0-9]*?)\]([\w#]{4,11}),([\w#]{4,11}),([\w#]{4,11}),([\w#]{4,11})\[\/rep\] 

これは完全に有効なようだ - 例えば次の文字列を一致させるためのものです:

[rep=0,20]#fff,#fff000,#111,transparent[/rep] 

そして、例えば、RegExrの中に動作するようには思えんが、それのためのMyCodeだけトリガーしていないようです。

+0

あなたはhttps://www.regex101.comで試してみましたか? – Martin

+0

「MyCode」とは何ですか?あなたのPHPの使い方は? – chris85

+0

@Martin、regex101.comで動作します。 –

答えて

0

delimitersをPHP実装に入れていないようです。

if(preg_match("/\[rep=([0-9]*?),([0-9]*?)\]([\w#]{4,11}),([\w#]{4,11}),([\w#]{4,11}),([\w#]{4,11})\[\/rep\]/", $str)) { 

} 

https://eval.in/568814

+0

私は最初からregex101で演奏することは、OPが完全なコードを含むことを否定し、実際のクエリ文字列(デリミタなし)を表示することを前提にしているにすぎないと考えていました。 – Martin

1

私は問題を発見しました。ハッシュ#をエスケープする必要がありました。

\[rep=([0-9]*?),([0-9]*?)\]([\w\#]{4,11}),([\w\#]{4,11}),([\w\#]{4,11}),([\w\#]{4,11})\[\/rep\]