preg_replace包含垂直行/管道字符的字符串

时间:2016-05-04 18:33:17

标签: php regex preg-replace

我有这样的字符串:

$str1="YESYES|c|no|c|";
$str2="YESYES|c|not this|c|YES|c|or this|c|";
$str3="YES";

我想要这样的字符串:

$str1="YESYES";
$str2="YESYESYES";
$str3="YES";

我以为我可以使用preg_replace但是我正在查看管道这一事实似乎会造成麻烦,如果我这样做:

$i=preg_replace("//|c\|[\s\S]+?/|c\|/",'',$i);

我收到'未知修饰符'|''错误。我知道以前一定要问这个问题,但是很难找到。什么是正确的正则表达式?

1 个答案:

答案 0 :(得分:1)

你必须使用下一行:

$i=preg_replace("/\|c\|[\s\S]+?\|c\|/",'',$i);

几乎与你所拥有的相同,但使用\而不是/来挖掘管道