preg_replace 两个箭头 space
preg_replace two arrows with space
我有一个包含“> >”的字符串。我正在尝试用 'test >>>>'.
替换 'test > >'
str_replace 没有替换任何东西,所以我尝试使用:
$string = preg_replace("/[\>\ \>]/",">>>>", $string);
但这会替换字符串中的所有空格以及箭头。
所以字符串的结尾是 'test>>>>>>>>'
而不是 'test >>>>'
/[\>\ \>]/
正则表达式匹配单个字符,即 >
、space 或 >
并且 preg_replace
替换多次出现(默认情况下) .
如果没有具体的上下文要求,可以使用str_replace
like
$s = "test > >";
echo str_replace('> >', '>>>>', $s);
如果你只想替换 > >
后面或前面没有 >
,你可以尝试
echo preg_replace("/(?<!> )> >(?!\s*>)/",">>>>", $s);
参见 another PHP demo and a regex demo。
如果 >
前面有 >
和 space,则 (?<!> )
后向匹配将失败,而 (?!\s*>)
前向匹配将失败如果这里有 0+ whitespaces 在 > >
.
之后跟着 >
$input_lines = "I have a string which has '> >'. I am trying";
echo preg_replace("/(?<!> )> >(?!\s*>)/", "-----", $input_lines);
输出将是:
我有一个字符串,其中包含“----”。我在努力
preg_replace(REG_PATTERN, 替换, INPUT_STRING); return 所需的输出。
它适用于任何具有“> >”的字符串,或者您的字符串中可能有双 space,您可以通过在正则表达式中的 > 和 > 之间增加 space 来替换它.
编码愉快。
我有一个包含“> >”的字符串。我正在尝试用 'test >>>>'.
替换 'test > >'str_replace 没有替换任何东西,所以我尝试使用:
$string = preg_replace("/[\>\ \>]/",">>>>", $string);
但这会替换字符串中的所有空格以及箭头。
所以字符串的结尾是 'test>>>>>>>>'
而不是 'test >>>>'
/[\>\ \>]/
正则表达式匹配单个字符,即 >
、space 或 >
并且 preg_replace
替换多次出现(默认情况下) .
如果没有具体的上下文要求,可以使用str_replace
like
$s = "test > >";
echo str_replace('> >', '>>>>', $s);
如果你只想替换 > >
后面或前面没有 >
,你可以尝试
echo preg_replace("/(?<!> )> >(?!\s*>)/",">>>>", $s);
参见 another PHP demo and a regex demo。
如果 >
前面有 >
和 space,则 (?<!> )
后向匹配将失败,而 (?!\s*>)
前向匹配将失败如果这里有 0+ whitespaces 在 > >
.
>
$input_lines = "I have a string which has '> >'. I am trying";
echo preg_replace("/(?<!> )> >(?!\s*>)/", "-----", $input_lines);
输出将是: 我有一个字符串,其中包含“----”。我在努力
preg_replace(REG_PATTERN, 替换, INPUT_STRING); return 所需的输出。
它适用于任何具有“> >”的字符串,或者您的字符串中可能有双 space,您可以通过在正则表达式中的 > 和 > 之间增加 space 来替换它. 编码愉快。