如果我有以下字符串,例如:
"Value1 *|VALUE_2|* Value3"
我希望能够从字符串中删除任何以字符 |开头的子字符串并以| 结束。我不知道这些角色之间会有什么,但这是无关紧要的,因为我想删除它们之间的任何内容。
基本上,我只是不确定在下面的代码中使用什么模式。
preg_replace("*|PATTERN|*", "", $str);
答案 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);
这应该可以解决问题。