我有以下问题,我需要替换字符串中的所有分号,这些分号只出现在带斜杠的字母之间。问题是我还有带分号的html实体和str_replace混淆它们。
示例字符串:
Category A > Subcategory A;Category A > Subcategory B;Category B > Subcategory C
期望的输出:
Category A > Subcategory A/Category A > Subcategory B/Category B > Subcategory C
答案 0 :(得分:1)
要在字母之间替换分号,可以使用正则表达式前瞻和后瞻。
$str = "Category A > Subcategory A;Category A > Subcategory B;Category B > Subcategory C";
$str = preg_replace("/(?<!\s);(?!\s)/", "/", $str);
echo $str;
或者如果你的html实体只有>
,那么你可以使用下面的代码
$str = "Category A > Subcategory A;Category A > Subcategory B;Category B > Subcategory C";
$str = preg_replace("/(?<!\>);/", "/", $str);
echo $str;
答案 1 :(得分:0)
您可以尝试使用str_replace - [http://php.net/manual/en/function.str-replace.php],例如:
$a = str_replace(";Cat", "/Cat", $a);