1
    <?php
        $target="This is a test | dont present me!";
        $pattern="/\| (.*?)/";
       $target=  preg_replace($pattern, '', $target);
        echo $target;
    ?>

パイプラインから右に向かっているものをすべて取り除こうとしていますが、正規表現は機能しません。私は何が欠けていますか?

4

3 に答える 3

4

次のことを試してください。

$pattern="/\| .*/";

括弧は繰り返さず、置換で再利用しないため、括弧は必要ありません。そして、疑問符は、の後に*不要です。どちらも数量詞です。(そして@wrikkenのコメントは正しい*?です、の怠惰なバージョンです*。)

于 2012-06-21T10:05:41.887 に答える
3

これを試して:

<?php
    $target="This is a test | dont present me!";
    $pattern="/\|.*/";
    $target=  preg_replace($pattern, '', $target);
    echo $target;
?>
于 2012-06-21T10:04:46.330 に答える
2

なぜ?あなたのパターンに?

グループ化が本当に必要ない場合/\|(.*)/でも、一緒に試してみてください。/\|.*/

于 2012-06-21T10:06:09.540 に答える