2016-12-09 10 views
1

ヘイスタックで検索する:14201-33-0.html正規表現は逆

ニードル0

正規表現:((?:-[^-]*))$

マッチ: -0.html

をだから私はから数字をキャプチャする必要があります最後に-まで.、これらの文字自体は除きます。私は正規表現では良くないので、正確に0と一致する方法を理解することはできません。 0の代わりに1桁または2桁にすることができます。

+2

チェックhttps://regex101.com/r/C5lHwc/1とhttps://regex101.com/r/C5lHwc/2 – TheLostMind

答えて

2

次の正規表現を使用することがあります。

  • - - ハイフン
  • (\d+) - グループ1:

    '~-(\d+)\.\D*$~' 
    

    regex demo

    詳細を参照してください。一つ以上を数字

  • \. - ドット
  • \D* - 数字以外の0個以上の文字(これは、[a-zA-Z]+または特定の拡張子のリストに変更することができます。 (?:html?|php)
  • $ - 文字列の最後。

PHP demo

$re = '~-(\d+)\.\D*$~'; 
$str = '14201-33-0.html'; 
if (preg_match($re, $str, $match)) { 
echo $match[1]; 
}