我想隔离其中的内容:
[img]https://URL.com[/img]
或
[img width=100]https://URL.com[/img]
或
[img *whatever*]https://URL.com[/img]
所以我得到https://URL.com。
我试过了:
preg_match('/\[img[^>+](.+?)\[\/img\]', $data['body'], $titlematches);
和
preg_match('/\[img](.+?)\[\/img\]/i', $data['body'], $titlematches);
但它没有得到理想的输出。
答案 0 :(得分:0)
答案 1 :(得分:0)
希望这会帮助你。
正则表达式: \[img[^\]]*\]\K(?:https?:\/\/)?(?:www\.)?[a-zA-Z0-9]+\.[a-z]+
1。
\[img[^\]]*\]\K
这将与[img
匹配,直到]
然后\K
重置匹配2。
(?:https?:\/\/)?(?:www\.)?[a-zA-Z0-9]+\.[a-z]+
这符合您的url
PHP代码:
<?php
ini_set('display_errors', 1);
$string='
[img]https://URL.com[/img]
[img width=100]https://URL.com[/img]
[img *whatever*]https://URL.com[/img]';
preg_match_all('/\[img[^\]]*\]\K(?:https?:\/\/)?(?:www\.)?[a-zA-Z0-9]+\.[a-z]+/', $string,$matches);
print_r($matches);