Мне нужна система, в которой он будет искать строку в определенном шаблоне, а затем добавит к ней определенный тег HTML, но удалит строку поиска.Regex remove match prefix php
Например, если строка матч %%
и кто-то напечатал этот %%MyString
он должен преобразовать его в этом <p class="myClass">MyString </p>
без %%
перед ним.
Вот мой код, который я пробовал. Я думаю, что он должен что-то сделать с ${99}
. Я пробовал $0
, но это все равно дает мне строку соответствия.
function convertLabels($str){
$regex = "/<(.*?)>[%]+([a-zA-Z0-9_]+)<(.*?)>/";
$str = preg_replace($regex, '<a href="listhash.php?tag=$1" class="label label-default">${99}</a>', $str);
$regex = "/<(.*?)>[%%]+([a-zA-Z0-9_]+)<(.*?)>/";
$str = preg_replace($regex, '<a href="listhash.php?tag=$1" class="label label-primary">${99}</a>', $str);
$regex = "/<(.*?)>[%!]+([a-zA-Z0-9_]+)<(.*?)>/";
$str = preg_replace($regex, '<a href="listhash.php?tag=$1" class="label label-info">${99}</a>', $str);
$regex = "/<(.*?)>[%%!]+([a-zA-Z0-9_]+)<(.*?)>/";
$str = preg_replace($regex, '<a href="listhash.php?tag=$1" class="label label-warning">${99}</a>', $str);
$regex = "/<(.*?)>[%!!]+([a-zA-Z0-9_]+)<(.*?)>/";
$str = preg_replace($regex, '<a href="listhash.php?tag=$1" class="label label-danger">${99}</a>', $str);
return($str);
}
Укажите примерную строку ввода и ожидаемую выходную строку. –