У меня есть эта функция, которая анализирует некоторый контент для извлечения тега домашней ссылки и конвертирует его в обычный тег ссылки.Regex - Как совместить один шаблон за раз
Возможные вход:
<p>blabalblahhh <moolinkx pageid="121">text to click</moolinkx> blablabah</p>
Выход:
<p>blabalblahhh <a href="whateverpage.htm">text to click</a> blablabah</p>
Вот мой код:
$regex = '/\<moolinkx pageid="(.{1,})"\>(.{1,})\<\/moolinkx\>/';
preg_match_all($regex, $string, $matches);
Он отлично работает хорошо, если есть только один в строке. Но как только есть второй, это не сработает.
Вход:
<p>blabalblahhh <moolinkx pageid="121">text to click</moolinkx> blablabah.</p>
<p>Another <moolinkx pageid="128">text to clickclick</moolinkx> again blablablah.</p>
Вот что я получил, когда я print_r ($ матчи):
Array
(
[0] => Array
(
[0] => <moolinkx pageid="121">text to click</moolinkx> blablabah.</p><p>Another <moolinkx pageid="128">text to clickclick</moolinkx>
)
[1] => Array
(
[0] => 121">text to click</moolinkx> blablabah.</p><p>Another <moolinkx pageid="128
)
[2] => Array
(
[0] => text to clickclick
)
)
Я не в своей тарелке с регулярным выражением, поэтому оно должно быть что-то очень тривиальный .. ., но я не могу точно определить, что это такое :(
большое спасибо заранее
NB: Это мой первый пост здесь, хотя я использовал этот потрясающий Q & A на века!
Сделайте регулярное выражение не жадный. –