【问题标题】:Replace semicolon between letters in PHP在PHP中替换字母之间的分号
【发布时间】:2016-10-11 22:33:46
【问题描述】:

我有以下问题,我需要替换字符串中的所有分号,这些分号只出现在带有斜杠的字母之间。问题是我也有带有分号的 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

【问题讨论】:

  • 在执行替换之前对字符串进行 HTML 解码?

标签: php string str-replace


【解决方案1】:

要仅替换字母之间的分号,您可以使用正则表达式前瞻和后瞻。

$str = "Category A > Subcategory A;Category A > Subcategory B;Category B > Subcategory C";
$str = preg_replace("/(?<!\s);(?!\s)/", "/", $str);
echo $str;

或者如果您的 html 实体只有 &amp;gt;,那么您可以使用下面的代码

$str = "Category A &gt; Subcategory A;Category A &gt; Subcategory B;Category B &gt; Subcategory C";
$str = preg_replace("/(?<!\&gt);/", "/", $str);
echo $str;

【讨论】:

  • 工作就像一个魅力,我永远欠你的债
【解决方案2】:

你可以试试 str_replace - [http://php.net/manual/en/function.str-replace.php],类似:

$a = str_replace(";Cat", "/Cat", $a);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多