Php 使用正则表达式提取两个单词之间的单词
我有一个字符串: 8个晚上你给卷毛狗涂鸦 我希望检索Php 使用正则表达式提取两个单词之间的单词,php,regex,preg-match,Php,Regex,Preg Match,我有一个字符串: 8个晚上你给卷毛狗涂鸦 我希望检索夜晚和狮子狗之间的所有东西,因此在上面的示例中,输出应该是you doodle 我正在使用下面的正则表达式。请有人指出我可能做错了什么 if (preg_match("nights\s(.*)\spoodle", "8 nights you doodle poodle", $matches1)) { echo $matches1[0]."<br />"; } if(preg_match(“nights\s(.*)\spo
夜晚
和狮子狗
之间的所有东西,因此在上面的示例中,输出应该是you doodle
我正在使用下面的正则表达式。请有人指出我可能做错了什么
if (preg_match("nights\s(.*)\spoodle", "8 nights you doodle poodle", $matches1)) {
echo $matches1[0]."<br />";
}
if(preg_match(“nights\s(.*)\spoodle”,“8晚你涂鸦贵宾犬”,“$matches1)){
echo$matches1[0]。“
”;
}
您很接近,但是您在$matches1
上访问了错误的索引$matches1[0]
将返回preg_match()中匹配的字符串
试试$matches1[1]
此外,还需要将正则表达式括在/
字符中
if (preg_match("/nights\s(.*)\spoodle/", "8 nights you doodle poodle", $matches1)) {
echo $matches1[1]."<br />";
}
if(preg_match(“/nights\s(.*\spoodle/”,“8晚你涂鸦贵宾犬”,$matches1)){
echo$matches1[1]。“
”;
}
输出
you doodle<br />
你在涂鸦
您可能想要这样的东西
if (preg_match("/nights\s(.*)\spoodle/", "8 nights you doodle poodle", $matches1)) {
echo $matches1[1]."<br />";
}
if(preg_match(“/nights\s(.*\spoodle/”,“8晚你涂鸦贵宾犬”,$matches1)){
echo$matches1[1]。“
”;
}
请访问rubular.com测试正则表达式。这是另一个相关问题:
闻起来很像家庭作业。去学regex。是的,我知道这很难,但一旦你了解了所有这些奇怪的匹配字符串是关于什么的,你就会成为一名程序员。@FlyingGuy-没问题,只要它们被标记为
家庭作业
。如果是,我就不会发布我的答案。@Shreder,你的答案无论如何都是垃圾。