この正規表現と一致させようとしています
/((TOSS-UP|BONUS)\n+([^\n]+)\n+ANSWER:([^\n]+))/
このデータに
TOSS-UP
? ipsum dolor sit amet
ANSWER: lorem
BONUS
when in the course of ? events
ANSWER: human
.
私は RegexPal のようなものを使用して正規表現を作成するので、最初に JavaScript でテストしました
({regex}).exec({data});
期待どおり、
[
"TOSS-UP\n? ipsum dolor sit amet\nANSWER: lorem",
"TOSS-UP\n? ipsum dolor sit amet\nANSWER: lorem",
"TOSS-UP",
"? ipsum dolor sit amet",
" lorem"
]
.
しかし、その後PHPで、
preg_match_all("{regex}","{data}",$arr);
var_dump($arr);
は一致せず、空の配列を返します。
これはおそらく、PHP スタイルの正規表現と JS 正規表現の違いです (私が本当に愚かなことをしている場合を除きます)。私は JS スタイルの正規表現しか知らないので、どうすればよいかわかりません。
私はそれを調べようとしましたが、公式文書は恐ろしく複雑で役に立たず、http://www.regular-expressions.info/refflavors.htmlでの比較には重要な違いがリストされていません。
したがって、ここにいます。