PHP:正则表达式中的条件子模式?
我在PHP中尝试过:PHP:正则表达式中的条件子模式?,php,conditional,Php,Conditional,我在PHP中尝试过: <?php $greets1="hello jack"; $greets2="hi john"; preg_match('/(hello)(?(1).*)/',$greets1,$result); ?> 我希望数组$result包含hello和jack,但它只捕获hello。为什么?模式是正确的,但它没有捕获比赛的第二部分。尝试: /(hello)((?(1).*))/ 您需要捕获hi/hello和姓名?可能是/(hello | hi)\s+(\w+
<?php
$greets1="hello jack"; $greets2="hi john";
preg_match('/(hello)(?(1).*)/',$greets1,$result);
?>
我希望数组
$result
包含hello
和jack
,但它只捕获hello
。为什么?模式是正确的,但它没有捕获比赛的第二部分。尝试:
/(hello)((?(1).*))/
您需要捕获hi/hello和姓名?可能是
/(hello | hi)\s+(\w+)/
合适吗?(?(1)。*)
应该做什么?试试(.*)
@AlmaDoMundo我试着用条件子模式,不过@JoAreBy我试着用条件子模式subpatterns@user176795那么你使用了错误的语法。正确的是(?(条件)是模式|否模式)
,但我看不出它与您的样本有什么关系。