我有一个字符串,看起来像"<html>"
。现在我要做的是获取"<"
和">"
之间的所有文字,这应该适用于任何文字,这样如果我做"<hello>"
或{{1}那也行。然后我想用一个包含标签之间字符串的字符串替换此字符串。
例如
在:
"<p>"
输出:
<[STRING]>
其中[STRING]是标签之间的字符串。
答案 0 :(得分:1)
使用捕获组匹配<
之后>
之后的所有内容,并将其替换为替换字符串。
preg_replace('/<([^>]*)>/, '<this is $1>/, $string);
答案 1 :(得分:1)
这是一个测试模式的解决方案,然后捕获它以最终修改它......
<?php
$str = '<[STRING]>';
$pattern = '#<(\[.*\])>#';
if(preg_match($pattern, $str, $matches)):
var_dump($matches);
$str = preg_replace($pattern, '<this is '.$matches[1].'>', $str);
endif;
echo $str;
?>
echo $ str; 你可以在这里测试:http://ideone.com/uVqV0u
答案 2 :(得分:0)
我不知道这对你是否有用。
您可以使用最佳方式的正则表达式。但是你也可以考虑从你的字符串中删除第一个<
和最后>
字符的小函数。
这是我的解决方案:
<?php
/*Vars to test*/
$var1="<HTML>";
$var2="<P>";
$var3="<ALL YOU WANT>";
/*function*/
function replace($string_tag) {
$newString="";
for ($i=1; $i<(strlen($string_tag)-1); $i++){
$newString.=$string_tag[$i];
}
return $newString;
}
/*Output*/
echo (replace($var1));
echo "\r\n";
echo (replace($var2));
echo "\r\n";
echo (replace($var3));
?>
输出给我:
HTML
P
所有你想要的
在https://ideone.com/2RnbnY