まず、これはこれではないと言っています:文字列から整数値を取得する方法はこちらをご覧ください..ok so
私の質問は: mv = / dev / vg10 / lv10:cp:99 [10]ではなくvg10の「10」 を抽出する必要があります。mvは文字列です
私の最終的な出力は、 vgから抽出する必要がある10だけである必要があります
私のPythonバージョン:Python 2.6.1
よろしくお願いします..助けてください:(
まず、これはこれではないと言っています:文字列から整数値を取得する方法はこちらをご覧ください..ok so
私の質問は: mv = / dev / vg10 / lv10:cp:99 [10]ではなくvg10の「10」 を抽出する必要があります。mvは文字列です
私の最終的な出力は、 vgから抽出する必要がある10だけである必要があります
私のPythonバージョン:Python 2.6.1
よろしくお願いします..助けてください:(
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
あなたはこれについて話しているのですか:
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()
import re
mv = '/dev/mapper/vg8-lv8-eSPAN_MAX_d4:eSPAN_MAX_d4:99'
print re.findall(r'(?<=vg)\d*', mv)