0

ボックスの外で遊ばせる前に、notepad++ で正規表現をテストしたいと思います。表現自体は機能しますが、貪欲ではないことを伝える必要があります。PHPでこれを行う方法は知っていますが、メモ帳でこれを行う方法はわかりません。

私の表現:

(#([^\]]+))?stop_here\?([^\]]+)

u-修飾子を使用して、次のようにPHPでこれを行います。

preg_match_all("/(#([^\]]+))?stop_here\?([^\]]+)/U", $input_string, $result_array);
4

2 に答える 2

5

?量指定子?+またはの後に追加することにより、*非貪欲になります。

(#([^\]]+?))??stop_here\??([^\]]+?)

preg_match のような PCRE PHP 関数でも動作します

于 2013-05-06T17:38:25.460 に答える
2

TwiNight が書いたように、各量指定子の後に疑問符を追加する必要があります。

ボックスの外で実行する前に php 正規表現をテストしたい場合は、PHP用の正規表現テスターを使用するのが最善の方法であることに注意してください(例: http://www.pagecolumn.com/tool/pregtest.htmなど) 。 )。Notepad++ はそれを行うために非常に制限されています。

貪欲でない量指定子は遅いことに注意してください (正規表現エンジンが多くのバックトラックを行うため)。可能であれば、それらを避ける必要があります。より高速な所有量指定子も使用できます (ただし、notepad++ では使用できません)。

于 2013-05-06T18:30:52.467 に答える