私は文字列を持っています:
The estimated delivery time will be approximately 5 - 7 business days from the time of order.
抽出したい:5-7 business days
この文字列から。
私は正規表現を書きました:'(^[[0-9][-]]*.*$)'
しかし、それは機能しません。ありがとう。
あなたの正規表現は少し奇妙です...
試す:
r'([0-9]+\s*-\s*[0-9]+) business days'
^
と$
はアンカーであり、文字列の最初と最後に一致しますが、これはあなたがここで望んでいるものではないと思います. また、キャプチャ グループは実際には必要ないため、r'[0-9]+\s*-\s*[0-9]+ business days'
問題なく動作するはずです。
+
営業日が増える場合に備えて、数量詞を追加しました。\s*
可能な限りのスペースを提供します。
あなたの正規表現では、2 つの文字クラス[[0-9]
と[-]
1 つのリテラル]
がありました。
最初の文字クラスは、 の[
いずれか、または任意の数に一致します。2 番目は 1 つのハイフンに一致します。
前面のr
は、文字列を生の文字列にするだけです。通常、正規表現では生の文字列を使用する方が安全です。
使用できますre.search('approximately([\s\S]+business\s+days)',s).group(1)
。正規表現の一致/検索で目的の結果を得るために使用されるグループ化。