这些字符串看起来像超链接,如http://somethings。这是我需要的:如何为“解析”HTML链接创建自己的正则表达式?
- 我需要检查他们,只有当他们不开始与字符
"
;我的意思是,只有那些角色:如果之前没有角色,它必须检查; - 那
somethings
字符串意味着除了空格(结束标记链接)外,每种字符都可以使用(当然是链接);我知道,这是RFC允许的,但是我知道要逃脱的唯一方法是; - 这些字符串以前使用
htmlentities($str, ENT_QUOTES, "UTF-8")
过滤,这就是为什么可以使用每种字符。它安全吗?或者我冒着xss或html中断的问题冒险? - 这个替换的发生可以是多重的,不仅是1,并且必须是不区分大小写的;
这是我的实际正则表达式:
preg_replace('#\b[^"](((http|https|ftp)://).+)#', '<a class="lforum" href="$1">$1</a>', $str);
但只检查那些与” START串,我想相反的任何帮助回答这个问题将是一件好事,感谢
!
1 - 你需要的话分成单独的字符串。然后,正则表达式是'[^“] *' – Joe 2011-05-09 11:27:19
[^”]应该工作,但是,如果这个词是它不第一个字(因为之前没有任何字符。 – kwichz 2011-05-09 11:30:24