求一正则,搞了很长时间 没想得出来 变通一下。先查第一个字是不是a,然后strstr()看看是否含有xyz 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $string="anassdfasfdasfdsxyzsff";if(preg_match("/^a(.*)[^(xyz)](.*)$/",$string)){ echo "aa";} \ba\w*x\w*y\w*z\w*\b看看这个对不对,应该是没问题。个人觉得不是很难啊,怎么会让楼主如此费神,如果正确记得给分哈~~ 以 a 开头,字符串中不能含连续的 xyz 匹配前先查一下是否有xyz或预查xyz /^a((?!xyz).)+/本地测试可以。给分哈。呵呵 2楼的实在是,郁闷,XYZ是一个变量,有N种形式, 我要求的是有连续的XYZ 不匹配,现在上面给的全匹配 XYZ是一个变量?那就是说abc也不行,或者def也不行? $string="anassdfasfdasfdsxyzxyzsff";if(preg_match("/^a([^xyz])+xyz([^xyz])+$/",$string)){ echo "不匹配";}else{ echo "匹配";} $string="axyzxyzsff";if(preg_match("/^a([^xyz])*xyz([^xyz])*$/",$string)){ echo "匹配";}else{ echo "不匹配";} 回kemy88 你的两个例子按我的要求应该是都不匹配 $string="affxyzsff";你下在的也输出匹配 事实上这个也含XYZ,应该也是不匹配的 我变量的意思指,如x"yz"xy"z"x y"z"xy zxy "z"等等 ,排列顺序是一样的,只是中间可以有空格,什么的,所以用str_replace肯定不行 我也想知道怎么用正则表示非某字符串,就是你说是xyz不能连续,但可以间隔出现。 if(preg_match("/^a(xyz)?([^xyz])*xyz([^xyz])*(xyz)?$/i",$string)){ echo "不匹配";}else{ echo "匹配";} 就是楼主需求都没整明白,让我们怎么写啊。 /^a((?!xyz).)+?$/这个就满足你开始那个需求。 回复 mylove0623 你试试这个$string="affxyzffsff"; 就知道你那个不行了 <?php//$str = "aaabbbxyz";//$str = "axbycy";//$str = "abcxyz";$str = "axyz";if (preg_match_all("/^a(?!.*xyz).+$/",$str,$m)) { print "Yes,Matched!";}else { print "No,Un-Matched!";}?> 楼主。affxyzffsff这个不匹配啊。我这个是正确的。你能不能试试啊。我搞正则好几个月了。难道我骗你不成。靠 <?php#author:mylove$str = "affxyzffsff";if (preg_match_all("/^a((?!xyz).)+?$/",$str,$m)) { print "Yes,Matched!";}else { print "No,Un-Matched!";}?> 关于注册时间限制的问题。 php6的配置文件 找 深圳php兼职, 求一个php正则表达式 请教关于页面语言切换(中英)问题 有关于PHP传递参数的问题 谁用过php nuke 7.5 安装问题 讨论一下CSDN高手的没落,有些人该不该做程序员 一个php的问题,请帮忙。 为什么网页不能接受通过?号传的参数 方法前加个&号是啥意思? php错误问题
$string="anassdfasfdasfdsxyzsff";
if(preg_match("/^a(.*)[^(xyz)](.*)$/",$string)){
echo "aa";
}
\ba\w*x\w*y\w*z\w*\b看看这个对不对,应该是没问题。个人觉得不是很难啊,怎么会让楼主如此费神,如果正确记得给分哈~~
本地测试可以。给分哈。呵呵
$string="anassdfasfdasfdsxyzxyzsff";
if(preg_match("/^a([^xyz])+xyz([^xyz])+$/",$string)){
echo "不匹配";
}
else{
echo "匹配";
}
if(preg_match("/^a([^xyz])*xyz([^xyz])*$/",$string)){
echo "匹配";
}
else{
echo "不匹配";
}
你的两个例子按我的要求应该是都不匹配
你下在的也输出匹配 事实上这个也含XYZ,应该也是不匹配的
x"yz"
xy"z"
x y"z"
xy z
xy "z"
等等 ,排列顺序是一样的,只是中间可以有空格,什么的,所以用str_replace肯定不行
if(preg_match("/^a(xyz)?([^xyz])*xyz([^xyz])*(xyz)?$/i",$string)){
echo "不匹配";
}
else{
echo "匹配";
}
/^a((?!xyz).)+?$/这个就满足你开始那个需求。
你试试这个
$string="affxyzffsff";
就知道你那个不行了
//$str = "aaabbbxyz";
//$str = "axbycy";
//$str = "abcxyz";
$str = "axyz";
if (preg_match_all("/^a(?!.*xyz).+$/",$str,$m)) {
print "Yes,Matched!";
}
else {
print "No,Un-Matched!";
}
?>
#author:mylove
$str = "affxyzffsff";
if (preg_match_all("/^a((?!xyz).)+?$/",$str,$m)) {
print "Yes,Matched!";
}
else {
print "No,Un-Matched!";
}
?>