0

私はhtml抽出に取り組んでおり、マイナーな業務で正規表現を使用しています。私はPythonreモジュールを使用していますが、グループを定義する必要がある場合、または少なくとも必要と思われる場合に、内部グループが返されるのを避けたいと思います。

例として、次の文字列について考えてみます。

line = u" 07.49 (43 votes) "

そして表現:

expr = lambda x: re.findall("(\d+(\.\d{1,2})?)\D*(\d+)", x)

アプリケーションの返品は次のとおりです。

expr(line)
[(u'7.49', u'.49', u'43')]

その結果、次のようになります。

expr(line)
[(u'7.49', u'43')]

ただし、数値の小数部分が表示されない場合があるため、で内部グループを定義する必要があり(\.\d{1,2})?ます。"(\d+(\.\d{1,2})?)\D*(\d+)"

この余分なグループを回避する方法はありますか?

4

1 に答える 1

2

絶対。代わりに、非キャプチャグループを使用してください。

(\d+(?:\.\d{1,2})?)\D*(\d+)
于 2012-12-25T20:36:57.043 に答える