0

まず、これはこれではないと言っています:文字列から整数値を取得する方法はこちらをご覧ください..ok so

私の質問は: mv = / dev / vg10 / lv10:cp:99 [10]ではなくvg10の「10」 を抽出する必要があります。mvは文字列です

私の最終的な出力は、 vgから抽出する必要がある10だけである必要があります

私のPythonバージョン:Python 2.6.1

よろしくお願いします..助けてください:(

4

3 に答える 3

2

Python の正規表現モジュールを調べる必要があります。スクリプトで「再インポート」するだけで、正規表現機能を提供できます。ちなみに、文字列「vg」に続く数字のみが必要な場合は、次のスクリプトでうまくいくはずです。

import re
urString = "/dev/vg10/lv10:cp:99"
Matches = re.findall("vg[0-9]*", mv)
print Matches

一致すると、すべての vg'number' を含むリストが作成されます。その [0-9]* は、任意の数字を何度でも意味します。それを再度解析して、そこから数値を取得します。正規表現についてもっと読むべきです。楽しいです。

OPの要件に合わせて回答を拡張します。

In [445]: Matches
Out[445]: ['vg10']

In [446]: int(*re.findall(r'[0-9]+', Matches[0]))
Out[446]: 10
于 2012-10-19T10:58:22.450 に答える
1

あなたはこれについて話しているのですか:

import re
mv = "/dev/vg10/lv10:cp:99"
print re.search('/dev/vg(\d+)', mv).groups()

または、vg が別のものである可能性があるが、それが常に 2 番目の項目である場合は、次のようにすることができます。

print re.search('/dev/\w+(\d+)/lv10:cp:99', mv).groups()
于 2012-10-19T10:53:03.060 に答える
0
import re

mv =  '/dev/mapper/vg8-lv8-eSPAN_MAX_d4:eSPAN_MAX_d4:99'

print re.findall(r'(?<=vg)\d*', mv)
于 2012-10-19T14:34:30.253 に答える