我有以下正则表达式规则(在 PHP 中)来查找文本文档中的图像链接:
'/((f|ht)tp)(.*?)(.gif|.png|.jpg|.jpeg)/'
因此,它接受例如以下内容:
http://www.example.com/image.jpg
但是,我希望它不接受以下内容:
(http://www.example.com/image.jpg)
或者:
[http://www.example.com/image.jpg]
我怎样才能做到这一点?
这是负面环视断言的工作:
'/(?<![(\[])((f|ht)tp)(.*?)\.(gif|png|jpg|jpeg)(?![)\]])/'
(?<![(\[])
断言没有[
或(
在比赛开始之前,并(?![)\]])
断言没有)
或)
之后。
编辑:
如果要匹配文字点,请不要忘记转义点。
您的模式丢失^
并且$
. 试试这个模式:
^((f|ht)tp)(.*?)(.gif|.png|.jpg|.jpeg)$