<?php
$target="This is a test | dont present me!";
$pattern="/\| (.*?)/";
$target= preg_replace($pattern, '', $target);
echo $target;
?>
我试图摆脱从管道向右走的所有东西..但正则表达式doest工作。我错过了什么?
答案 0 :(得分:4)
尝试以下方法:
$pattern="/\| .*/";
您根本不需要括号,因为您不重复它并且不会在替换中重复使用。问号在*
之后是多余的,两者都是量词。 (并且@wrikken的评论是正确的,*?
是*
的懒惰版本。)
答案 1 :(得分:3)
试试这个:
<?php
$target="This is a test | dont present me!";
$pattern="/\|.*/";
$target= preg_replace($pattern, '', $target);
echo $target;
?>
答案 2 :(得分:2)
为什么模式中的?
?
如果您不需要分组,请尝试使用/\|(.*)/
或甚至/\|.*/
。