php 一个正则表达式 怎么样使用正则匹配一个字符串取非?[^p]例如:有这样一个字符串 “# #123 # #哈哈哈哈#”需要通过一个正则得到以 #开始,以 #结束,中间必须有字符但是不能是#通过match_all希望得到如下结果: 1) #123 # 2) #哈哈哈哈# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $str= "# #123 # #哈哈哈哈#232#";$reg ='~(?<=#)(?:(?=[^\s]+))(.*?)(?=#)~';preg_match_all($reg,$str,$m); print_r($m[0]); 左右(?<=)和(?=)是为了捕获那些交叉的#,如果实际情况不会有这个问题,就不用,效率会好很多。 写的不错,但是不能满足我的需求,可能我说的不太明白例如"#&;##" 假设A = # ,我要实现的就是 /A[^A]A/通过你上面的表达式是得不到这个结果的 那"#&;##"这个你想要得到什么结果? 你这个/A[^A]A/,^只能排除单个字符以正则表示应该是/A(?:(?!A).)*A/,A可以是一个字符串 $s='abac#123 # slskf#哈哈 # ss# ss';preg_match_all('/\#[\w\W]+?\#/',$s,$e);var_dump($e); 为什么服务器大都关闭zend和xdebug功能呢? php中如何从文件中获取一个用户的相关信息 怎样实现多重登陆 用户点击提交表单按钮,10秒后提交,可以做到不? smarty给数组赋值的问题 SMARTY我只需要简单的模板功能,在发发表的时候要带哪几个文件?? 大家用什么做统计图 PHP+MYSQL 再问“怎样让delphi从自带的库里提出数据按日期字段排序?谢谢大哥!” PHP如何生成PDF文件并且打包成GZ文件 现在有点晕了!怎么接收函数返回的数组??? 求解:关于PHP的函数mysql_fetch_array()
$reg ='~(?<=#)(?:(?=[^\s]+))(.*?)(?=#)~';
preg_match_all($reg,$str,$m);
print_r($m[0]);
写的不错,但是不能满足我的需求,可能我说的不太明白
例如"#&;##" 假设A = # ,我要实现的就是 /A[^A]A/
通过你上面的表达式是得不到这个结果的
以正则表示应该是/A(?:(?!A).)*A/,A可以是一个字符串
preg_match_all('/\#[\w\W]+?\#/',$s,$e);
var_dump($e);