正则表达式删除匹配前缀php
我需要一个系统,它将搜索一个字符串在一个特定的模式,然后添加一个特定的HTML标记到它,但删除搜索字符串 例如,如果匹配字符串为正则表达式删除匹配前缀php,php,regex,Php,Regex,我需要一个系统,它将搜索一个字符串在一个特定的模式,然后添加一个特定的HTML标记到它,但删除搜索字符串 例如,如果匹配字符串为%%,并且有人键入了此%%MyString,则应将其转换为此MyString,而不在其前面键入%% 这是我试过的代码。我认为它与${99}有关。我尝试了$0,但仍然得到了匹配字符串 function convertLabels($str){ $regex = "/<(.*?)>[%]+([a-zA-Z0-9_]+)<(.*?)>/";
%%
,并且有人键入了此%%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]+)
,这意味着%%
和下一个出现的空格字符之间的所有文本。请提供一个示例输入字符串和预期的输出字符串。是的,这就是我想要的。。。我懂了