<?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;
?>
なぜ?
あなたのパターンに?
グループ化が本当に必要ない場合/\|(.*)/
でも、一緒に試してみてください。/\|.*/