3

正規表現を使用して次の行の式を抽出する最良の方法は何ですか:

Sigma 0.10 index = $5.00
beta .05=$25.00
.35 index (or $12.5)
Gamma 0.07

いずれの場合でも、各行から数値 (たとえば、行 1 から "0.10") を抽出し、(利用可能な場合) 行 1 の金額または "$5.00" を抽出します。

4

3 に答える 3

4
import re
s="""Sigma 0.10 index = $5.00
beta .05=$25.00
.35 index (or $12.5)
Gamma 0.07"""
print re.findall(r'[0-9$.]+', s)

出力:

['0.10', '$5.00', '.05', '$25.00', '.35', '$12.5', '0.07']

より厳密な正規表現:

print re.findall(r'[$]?\d+(?:\.\d+)?', s)

出力:

['0.10', '$5.00', '$25.00', '$12.5', '0.07']

あなた.05も一致させたい場合:

print re.findall(r'[$]?(?:\d*\.\d+)|\d+', s)

出力:

['0.10', '$5.00', '.05', '$25.00', '.35', '$12.5', '0.07']
于 2013-05-30T03:54:14.120 に答える
1

基本正規表現は次のようになります: \$?\d+(\.\d+)?、これで数値が得られます。残念ながら、私は JavaScript/C# の正規表現を知っているので、Python で複数行を実行する方法がわかりません。ただし、本当に単純なフラグである必要があります。

于 2013-05-30T03:54:30.260 に答える