私は Python を初めて使用し、Python の正規表現を知りません。これが質問です。stdout に "Total Cost: 37" のような文があり、37 であるコスト情報を抽出したいと考えています。特定の行で "Total Cost: " という単語に一致する場合、行の残りの部分を取得するにはどうすればよいですか?気になる情報は?
質問する
71 次
2 に答える
3
使用regex
:
Total Cost:\s?
説明:
"Total Cost": 文字どおりに一致Total Cost:
\s?
:1 to 0 times Whitespace [\t \r\n\f]
捕獲グループ([-+]?\d+)
:
[-+]?
:1 to 0 times matches one of the following chars: -+
\d+
:infinite to 1 times Digit [0-9]
In [121]: strs="some text Total Cost: 37 some more more Total Cost: -100"
In [122]: re.findall(r"Total Cost:\s?([-+]?\d+)",strs)
Out[122]: ['37', '-100']
于 2013-01-19T18:37:16.747 に答える
0
質問は「正規表現」に関連しているとあなたは言いましたが、私はあなたが出力について何を言っていたかに焦点を当てます。次の STDOUT があります。
Total Cost: 37
この出力が という文字列に格納されているとしoutput_string
ます。Python インタープリターを使用します。
In [11]: output_string = "Total Cost: 37"
In [13]: (total_text_string, total_numeric_string) =
output_string.split(':')
In [14]: total_text_string
Out[14]: 'Total Cost'
In [15]: total_numeric_string
Out[15]: ' 37'
In [16]: float(total_numeric_string)
Out[16]: 37.0
文字列を取得しsplit
、区切り文字として「:」を使用してメソッドを使用します。1 つはテキスト部分用で、もう 1 つは数値部分を含む 2 つの文字列になります。コストに小数を含める必要がある可能性が高いため、「float」を介して浮動小数点に「キャスト」できます。次に、これらの値をどうするかを決定できます。
于 2013-01-19T20:06:26.620 に答える