我需要匹配链接,但只有那些不以字符串 [image:x] 开头的链接,其中 x 是链接本身。
我需要在 preg_replace 中使用它,以便仅更改适合的链接,这是一个示例:
“有一次狗吃了我的书
http://mysite.com/dog.jpg
,我不得不去商店https://www.mysite.com/images/store.png
买一个新的 iPadapple.com/iPad/iPadMini.jpg
,这很有趣 [image:http://apple.com/iPad/images/iPads.com
]”
将导致
“有一次狗吃了我的书
[image:http://mysite.com/dog.jpg]
,我不得不去商店[image:https://www.mysite.com/images/store.png]
买一个新的 iPad[image:apple.com/iPad/iPadMini.jpg]
,这很有趣 [image:http://apple.com/iPad/images/iPads.com
]”
注意最后一个链接,因为现在我把它加倍了(链接仍然被 preg_replace 拾取)。像这里(不是想要的效果,我需要它原封不动):
...[image:apple.com/iPad/iPadMini.jpg]
那里很有趣
[image:[image:http://apple.com/iPad/images/iPads.com]]
“
这是我现在的 preg_replace :
preg_replace('~(https?://)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\S*)\.(jpg|png|jpeg|bmp|gif)~','[[image:$0]]',$text);