<?php
$target="This is a test | dont present me!";
$pattern="/\| (.*?)/";
$target= preg_replace($pattern, '', $target);
echo $target;
?>
我试图摆脱从管道向右的所有东西..但正则表达式不起作用。我错过了什么?
尝试以下操作:
$pattern="/\| .*/";
您根本不需要括号,因为您不会重复它并且不会在替换中重复使用。后面的问号是多余的*
,都是量词。(而且@wrikken 的评论是对的,*?
是 . 的懒惰版本*
。)
尝试这个:
<?php
$target="This is a test | dont present me!";
$pattern="/\|.*/";
$target= preg_replace($pattern, '', $target);
echo $target;
?>
为什么?
在你的模式中?
尝试使用/\|(.*)/
或什至只是/\|.*/
在您真的不需要分组的情况下。