我有一个字符串:
8 nights you doodle poodle
我希望检索 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 />
关于php - 使用正则表达式提取两个单词之间的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073849/