PHP Regex - 替换字符串中的子字符串

时间:2014-06-05 11:11:37

标签: php regex

如果我有以下字符串,例如:

"Value1 *|VALUE_2|* Value3"

我希望能够从字符串中删除任何以字符 |开头的子字符串并以| 结束。我不知道这些角色之间会有什么,但这是无关紧要的,因为我想删除它们之间的任何内容。

基本上,我只是不确定在下面的代码中使用什么模式。

preg_replace("*|PATTERN|*", "", $str);

3 个答案:

答案 0 :(得分:1)

|是一个需要在正则表达式中转义的特殊字符:

preg_replace('/\|[^|]+\|/', '', $str);

答案 1 :(得分:0)

preg_replace("/\|.*\|/U", "", $str);

我认为这应该可以解决问题..

/U使模式不合适,以便Value1 |VALUE_2| Value3|test匹配|VALUE_2|而不是|VALUE_2| Value3|

如果你只想删除|之间的内容,你可以这样做:

preg_replace("/\|.*\|/U", "||", $str);

还有其他方法,但这将是最简单的一种方式。

答案 2 :(得分:0)

preg_replace('/|[^|]+|/', '', $str);

这应该可以解决问题。