我有一个字符串:


8晚涂鸦贵宾犬


我希望检索nightspoodle之间的所有内容,因此在上面的示例中,输出应为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 />

09-26 02:18