求一正则,搞了很长时间 没想得出来 变通一下。先查第一个字是不是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!";}?> php连接mssql数据库中文乱码问题 =>,->这些是什么意思呀? 菜鸟求助 windows xp 用apache_2.2.11和php-5.2.9搭建PHP环境 LoadModule 出错,不能启动apache 最后一点分,请教一个数据库链接问题 php里怎么实现javascript的unescape函数的功能? 自由网络计划启动规划书(2002.08.30) 数组压缩,数组组合问题,求助! webservice问题,soap问题,响应问题-求大神!大神在哪? 有哪位在windows下用xampp+apc插件的? 方法前加个&号是啥意思? 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!";
}
?>