我有一个'>的字符串>”。我正在尝试替换'test> >”使用'test>>>>'。
str_replace不会替换任何东西,所以我尝试使用:
$string = preg_replace("/[\>\ \>]/",">>>>", $string);
但是这会替换字符串中的所有空格以及箭头。
因此字符串最终会像'test>>>>>>>>'
而不是'test >>>>'
答案 0 :(得分:1)
/[\>\ \>]/
正则表达式匹配单个字符>
,空格或>
和preg_replace
替换多次出现(默认情况下)。
如果没有特定的上下文要求,您可以使用str_replace
之类的
$s = "test > >";
echo str_replace('> >', '>>>>', $s);
请参阅PHP demo
如果您只想替换> >
未跟随或先于>
,您可以尝试
echo preg_replace("/(?<!> )> >(?!\s*>)/",">>>>", $s);
请参阅another PHP demo和regex demo。
如果(?<!> )
前面有>
和一个空格,那么>
lookbehind会使匹配失败,如果这里有0+空格,(?!\s*>)
前瞻会使匹配失败在>
之后跟> >
。
答案 1 :(得分:0)
$input_lines = "I have a string which has '> >'. I am trying";
echo preg_replace("/(?<!> )> >(?!\s*>)/", "-----", $input_lines);
输出将是: 我有一个带'----'的字符串。我正在尝试
preg_replace(REG_PATTERN,REPLACEMENT,INPUT_STRING);返回所需的输出。
它适用于任何包含'&gt;的字符串&gt;',或者您的字符串中可能有双倍空格,您可以通过增加&gt;之间的空格来替换它。和&gt;在正则表达式中。 快乐的编码。