我是正则表达式的新手。
我需要在某些文本中找到网站,我正在寻找能够找到字符串的正则表达式:
www.my.home, http://my.site.it
但是这个正则表达式不应该找到像:
这样的字符串address@my.site.it 或者如果网站已经在html标签内
<a href="http://www.my.site.com/">
<span style="font-style: normal;">www.mambo-test.org</span>
</a>
我试过这个:
\ b((https?:// [^] )|(www。[^] ))
但它也会在href和标签之间找到网站:
<a href="http://www.my.site.com/">
<span style="font-style: normal;">www.mambo-test.org</span>
</a>
除了这个案子我不知道怎么做。
答案 0 :(得分:2)
您尝试做的事情称为通过正则表达式解析HTML代码。
首先,我能感受到你的痛苦。
其次,详细解释了here 为什么你不应该这样做。
第三,如果您的客户在富文本编辑器中插入Web链接,并且他们有时会正确地执行此操作,有时他们不会这样做,那么......这绝对是一种不好的做法,这样的人应该接受教育。如果他们懒得点击富文本编辑器的“链接”按钮,他们的文本将被视为简单文本而不是链接。他们很快就会明白。
Forth,您使用哪种富文本编辑器? TinyMCE 提供了一整套功能和插件,可让您预先/后期处理用户插入的文本容易。这可能比尝试在PHP中编辑该文本更容易。
第五,如果您仍然需要这样做,您可能需要查看this tutorial on how to parse HTML to find links。
答案 1 :(得分:1)
也许this可以解决您的问题。