php 正则表达式匹配不以某些字符开始的字符串

例如有如下字符串
$str='<li><span>1233455<span><li><li>fffffddf</li><li>fffffddf<span>122323</span></li><li>fffffdd<span>3455fsf</span>fwrw</li>';
我想要的结果是匹配出数组
array('0'=>'fffffddf<span>122323</span>','1'=>'fffffdd<span>3455fsf</span>fwrw');
即如果<li></li>之间字符时以<span>开头的话,那么就剔除这一项

照你的匹配结果,那<li></li>中没有<span></span>的也会被去除啊,因为<li>fffffddf</li>没在结果中
所以按你需要的结果
$reg = '#<li>([a-z]+<span>[\w]*</span>[\w]*)</li>#i';
如果只是<li></li>之间字符时以<span>开头的话,那么就剔除这一项
$reg = '#<li>([a-z]+(?:<span>[\w]*</span>)?[\w]*)</li>#i';
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-10
<li>(?!<span>).*</span></li>

其中 (?!<span>) 代表不以 <span>开头

php 正则表达式,如何匹配必须包含某字符串和不包含某字符串
其实这个问题完全可以用 Split 先把字符串每一行分解出来,然后用 strpos 一一查找是否包含 YY,分组,怎么 等字符串,用正则反而更不好做。。上面的正则只能匹配"YY"在"分组"之前出现的字符串。。

php 正则表达式 怎么匹配除句号以外的内容啊?
测试代码如下,@php5.35 preg_match_all('\/[^。]+\/s', 'dfjakldf。对方df', $match);var_dump($match);具体什么需求?参考资料:http:\/\/deerchao.net\/tutorials\/regex\/regex.htm

正则表达式匹配但不包括一段字符串加上几个字符开头的结尾子串?
按照你的要求编写的匹配字符串结尾子串的正则表达式如下(见图)下面我给你一个php语言的例子,你看看吧.(见图)

求PHP 的正则表达式 大全
有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\\x00-\\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\\n\\s*\\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\\S*?

求判断不存在某字符串的正则表达式
p.test(你的字符串) var p=\/xxxx\/;alert(p.test("ccccxxxxccc")); PHP \/\/判断存在 strpos("你的字符串","你要查找的字符串")!==false)\/\/字符串替换 str_replace();如果你的内容是不是单纯的字符串替换。是需要正则匹配的话,哪么你用正则函数解决。那要看你的需求,你的问题需求不明确...

php正则表达式截取 反斜杠里内容。\\工科院校\\\\\\北京市\\本科A++_百度...
对于PHP,preg_match函数里面的第一个参数 字符串 要写为: \\\\\\ 才能对应 正则中的 \\\\,才能找到 字符串中的 \\ 。所以,表达式改为:preg_match("\/\\\\\\([^\\\\\\]+)\\\\\\\/", $schoolinfo, $sinfo);这里匹配 \\字符\\ 这样的结果,可以匹配本例子中的 \\工科院校\\ ...

php正则表达式排除某个字符?
根据你的描述,个人觉得不用preg_match也能实现。if ($cont == 'abc') { return '匹配失败';} return '匹配成功';必须要用preg_match的话:if (preg_match('\/^abc$\/', $cont)) { return '匹配失败';} return '匹配成功';还有if里面已经return了,就没必要写else了。

php 替换非a标签内的字符正则表达式
subject="大世界";pattern="\/(.*?)<\\\/a>\/is";preg_match($pattern, $subject ,$arr);然后你打印下$arr 你就能看到你要的了。这个数组下0是带标签的 1是忽略匹配的标签的

该正则表达式,用于过滤掉什么内容呢?:"\\\\([^()]*\\\\)"; (PHP)
匹配双字节字符(包括汉字在内):[^\\x00-\\xff]匹配空白行的正则表达式:\\n\\s*\\r 匹配HTML标记的正则表达式:<(\\S*?)[^>]*>.*?<\/\\1>|<.*? \/> 匹配首尾空白字符的正则表达式:^\\s*|\\s 匹配Email地址的正则表达式:\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)匹配...

PHP中正则表达式\\s不是匹配任意一个空白符吗
\\s是匹配所有的空白符,包括空格,制表符,和换行符。而preg_match(march,subject),第一个参数是正则表达式,第二个参数是查找字符串。所以,你的这个是在$str:"sfdghfg54\\f"中找空白符,所以应该是找得到。我在自己的电脑上输入这段代码,是输出匹配。

相似回答