我有一个字符串:
8晚涂鸦贵宾犬
我希望检索nights
和poodle
之间的所有内容,因此在上面的示例中,输出应为you doodle
。
我正在使用下面的正则表达式。请有人指出我可能做错了什么吗?
if (preg_match("nights\s(.*)\spoodle", "8 nights you doodle poodle", $matches1)) {
echo $matches1[0]."<br />";
}
最佳答案
您已经关闭,但是您正在访问$matches1
上的错误索引。 $matches1[0]
将返回在preg_match()中匹配的字符串;
尝试$matches1[1]
;
另外,您需要将正则表达式用/
字符括起来;
if (preg_match("/nights\s(.*)\spoodle/", "8 nights you doodle poodle", $matches1)) {
echo $matches1[1]."<br />";
}
输出量
you doodle<br />