0

私は文字列を持っています:

The estimated delivery time will be approximately 5 - 7 business days from the time of order.

抽出したい:5-7 business daysこの文字列から。

私は正規表現を書きました:'(^[[0-9][-]]*.*$)'

しかし、それは機能しません。ありがとう。

4

3 に答える 3

2

あなたの正規表現は少し奇妙です...

試す:

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は、文字列を生の文字列にするだけです。通常、正規表現では生の文字列を使用する方が安全です。

于 2013-09-16T07:28:50.670 に答える
0

使用できますre.search('approximately([\s\S]+business\s+days)',s).group(1)。正規表現の一致/検索で目的の結果を得るために使用されるグループ化。

于 2013-09-16T08:47:02.090 に答える