0

首先我说这不是:How to get integer values from a string in look here ..ok so

我的问题是: mv = /dev/vg10/lv10:cp:99 我需要提取vg10的“10”而不是 [10]。mv 是一个字符串

我的最终输出应该只有 10 应该从vg中提取

我的python版本:Python 2.6.1

在此先感谢..请帮助我:(

4

3 回答 3

2

您应该查看 python 的正则表达式模块。只需在脚本中“import re”即可提供正则表达式功能。顺便说一句,如果您只想要字符串“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 可以是其他东西,但它始终是您想要的第二项,您可以这样做:

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 回答