2

次の正規表現があります。

#^/workorder/(.*)/#

次の URI を提供します。

/workorder/archive/2/

preg_match() からの $matches 変数が返されますarchive/2/

正規表現の最後が貪欲に/なるのを止めないのはなぜですか? 区切り文字が見つかっ(.*)たときに正規表現を停止するには何を追加すればよいですか?/

4

3 に答える 3

3

欲張りでないようにするには、に(.*)置き換えます。(.*?)

ここに良い説明があります:貪欲なマッチと貪欲でないマッチ

于 2012-06-05T19:14:36.940 に答える
3

これでうまくいきます。

^/workorder/([^/]*)/
于 2012-06-05T19:15:56.367 に答える
2

貪欲(怠惰)にならないようにするには

^/workorder/(.*?)/

しかし、これはパフォーマンスに良くないバックトラッキングを使用します。使用する

^/workorder/([^/]*)/

あなたのケーキを持って、それを速く食べるために

于 2012-06-05T19:18:16.190 に答える