我正在尝试匹配这个正则表达式
/((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上的比较没有列出任何重要的差异。
因此,我在这里。