php求正则表达式写法
[font="microsoft yahei" onclick="alert('b')"]*[/font]
[font="abc" onclick="alert('b')"]*[/font]
[font="microsoft yahei"]*[/font]
[font=abc onclick="alert('b')"]*[/font]
[font=abc]*[/font]
我想这样取,我只取出font=后面的字符,但不包括onclick(不一定是onclick,有可能是onfocus之类的)后面的字符还有*这几个字。
意思就是说,只取出字体名字,字体名字可以包含引号,但是字体后面如果有字符,都不取。
求正则表达式的写法。
我这样写,会连onclick以及后面的字符取到。
/\[font=(.*?)\](.*?)\[\/font\]/i
回复讨论(解决方案)
/\[font="([^\"]+?)".+?\](.*?)\[\/font\]/i
试试
/\[font="([^\"]+?)".+?\](.*?)\[\/font\]/i
试试
echo preg_replace('/\[font="([^\"]+?)".+?\](.*?)\[\/font\]/i', '$1@@@@$2', '[font="microsoft yahei"]*[/font]');
我试了一下,不行呢。
echo preg_replace('/\[font="([^\"]+?)".*?\](.*?)\[\/font\]/i', '$1@@@@$2', '[font="microsoft yahei"]*[/font]');
echo preg_replace('/\[font="([^\"]+?)".*?\](.*?)\[\/font\]/i', '$1@@@@$2', '[font="microsoft yahei"]*[/font]');
可以了。谢谢。
请问:[^\"] 这串字符代表什么呢?
另外,还有一种情况不能匹配就是
[font=microsoft]*[/font]
这一种,就是字体两边没有引号的。我自己试了一下没成功。麻烦再给看一下。谢谢。
[^\"]
[] 里面的是一个字符集合
^ 是除了什么什么之外
意思就是除了双引号之外的其他任何字符都匹配,\是转义,其实也可以不要
---------------------------------------------------------------------------------
[font=microsoft]*[/font]
'/\[font="*([^\"]+)"*.*?\](.*?)\[\/font\]/i'
牛掰
多谢各位的帮助。结帖
上一篇: JavaScript开发时的五个小提示
推荐阅读
-
html网页中插入script脚本,src指向php文件,怎么在html中显示php返回的数据?求大神赐教。
-
求PHP的UML工具
-
想用php将数据库里的内容存为如下数组,求如何写
-
php开发 pos打印中文乱码,求高人指点下
-
【在线等】求雅虎日本api解析(php),我再做一个代购网(雅虎日本,乐天),求高手帮忙解析下他们两个的api。
-
PHP5读取EXCEL内容时的一个正则表达式函数解决办法
-
直接任意球和间接任意球的区别 PHP 求任意n个正负整数里面最大的连续和
-
求,用PHP实现MP3转WAV后生成波形图的方法
-
请问关于PHP中关联多表相关字段,并做分页处理的SQL语句写法
-
这样的PHP正则表达式该如何写