正则表达式删除匹配前缀php

正则表达式删除匹配前缀php,php,regex,Php,Regex,我需要一个系统,它将搜索一个字符串在一个特定的模式,然后添加一个特定的HTML标记到它,但删除搜索字符串 例如,如果匹配字符串为%%,并且有人键入了此%%MyString,则应将其转换为此MyString,而不在其前面键入%% 这是我试过的代码。我认为它与${99}有关。我尝试了$0,但仍然得到了匹配字符串 function convertLabels($str){ $regex = "/<(.*?)>[%]+([a-zA-Z0-9_]+)<(.*?)>/";

我需要一个系统,它将搜索一个字符串在一个特定的模式,然后添加一个特定的HTML标记到它,但删除搜索字符串

例如,如果匹配字符串为
%%
,并且有人键入了此
%%MyString
,则应将其转换为此

MyString

,而不在其前面键入
%%

这是我试过的代码。我认为它与
${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);
}
函数转换标签($str){
$regex=“/[%]+([a-zA-Z0-9_]+)/”;
$str=preg_replace($regex,,$str);
$regex=“/[%]+([a-zA-Z0-9_100;]+)/”;
$str=preg_replace($regex,,$str);
$regex=“/[%!]”+([a-zA-Z0-9_239;]+)/”;
$str=preg_replace($regex,,$str);
$regex=“/[%!]”+([a-zA-Z0-9_239;]+)/”;
$str=preg_replace($regex,,$str);
$regex=“/[%!!]+([a-zA-Z0-9_100;]+)/”;
$str=preg_replace($regex,,$str);
回报($str);
}
这就是你想要的吗

function convertLabels($str){
  $regex = "/%%([^\s]+)/";
  $str = preg_replace($regex, '<p class="myClass">${1}</p>', $str);

  return $str;
}


echo convertLabels("wrap the %%text with a p tag");
函数转换标签($str){
$regex=“/%%”([^\s]+)/”;
$str=preg_replace($regex,

${1}

',$str); 返回$str; } echo convertLabels(“用p标记包裹%%文本”);
输出:

wrap the <p class="myClass">text</p> with a p tag
用p标记将

文本包装起来

说明:

[^\s]+
。。。一个或多个任意字符(不包括空格字符)


${1}
是对模式中第一个括号表达式的反向引用,它是
([^\s]+)
,这意味着
%%
和下一个出现的空格字符之间的所有文本。

请提供一个示例输入字符串和预期的输出字符串。是的,这就是我想要的。。。我懂了