首页 > 解决方案 > 从字符串中删除特殊字符“|”,如果它包含“,”,则忽略开始|“结束”|

问题描述

细绳:

(STR,0:30) + |“户外”| + |"椅子垫","商用地垫","门垫"| + [帖子类型] + (STR,0:30)

结果:

(STR,0:30) + "户外" + |"椅子垫","商用地垫","门垫"| + [帖子类型] + (STR,0:30)

我努力了

preg_replace('/\|\"[a-z A-Z]\"\|/i', '"', $string);

我找不到任何解决方案,我知道的唯一条件是字符串将以开头|"和结尾,"|如果它不包含","在我们可以删除或替换|""|之间"

标签: phpregexpreg-replace

解决方案


我认为您可以使用这样的正则表达式:

\|("[^,]+")\|

正则表达式演示

$re = '/\|("[^,]+")\|/m';
$str = '(STR,0:30) + |"Outdoor"| + |"Chair Mat","Commercial Floor Mat","Door Mat"| + [Post Type] + (STR,0:30)';
$subst = '$1';

$result = preg_replace($re, $subst, $str);

echo "The result of the substitution is ".$result;
// (STR,0:30) + "Outdoor" + |"Chair Mat","Commercial Floor Mat","Door Mat"| + [Post Type] + (STR,0:30)

推荐阅读