私の正規表現は貧弱で、これに苦労しています。次のようなパターンを含む URL がいくつかあります。
/1234/
/5527191/
/15974/
等々。常に一連の文字、次にスラッシュ、数字 (最大 10 個の数字)、そして別のスラッシュです。
だから私は検索し、文字を無視し、2 つのスラッシュの間の数字のグループを見つけるいくつかの RegEx を求めています。
助けてくれてありがとう!
次の正規表現を使用できますpreg_match_all
(またはpreg_match
最初の一致のみが必要な場合)。
preg_match_all("#/\d{1,10}/#", $s, $matches);
説明
#
正規表現の区切り文字です。/
リテラル スラッシュに一致します。\d
任意の数字に一致します。{1,10}
前のトークンに 1 ~ 10 回一致します。オンラインでの動作を確認してください: ideone
スラッシュなしで数値もキャプチャしたい場合は、キャプチャ グループを使用できます。
preg_match_all("#/(\d{1,10})/#", $s, $matches);