从python中的字符串中提取一个后跟命令行参数变量的特定数字

从python中的字符串中提取一个后跟命令行参数变量的特定数字,python,Python,首先,我说的不是这个:如何从…中的字符串中获取整数值 我的问题是:mv=/dev/vg10/lv10:cp:99我需要提取vg10的“10”而不是[10]。mv是一个字符串 我的最终输出应该只有从vg 我的python版本:python 2.6.1 提前谢谢。。请帮帮我:(你在说这个吗: import re mv = "/dev/vg10/lv10:cp:99" print re.search('/dev/vg(\d+)', mv).groups() 或者,如果vg可以是其他东西,但它始终是您

首先,我说的不是这个:如何从…中的字符串中获取整数值

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

我的最终输出应该只有从vg

我的python版本:
python 2.6.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()

你是说这个吗?

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()

您应该研究python的正则表达式模块。只需在脚本中“import re”即可提供正则表达式功能。 顺便说一句,如果您只需要字符串“vg”后面的数字,那么下面的脚本应该可以做到这一点

import re
urString = "/dev/vg10/lv10:cp:99"
Matches = re.findall("vg[0-9]*", mv)
print Matches
现在,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

您应该研究python的正则表达式模块。只需在脚本中“import re”即可提供正则表达式功能。 顺便说一句,如果您只需要字符串“vg”后面的数字,那么下面的脚本应该可以做到这一点

import re
urString = "/dev/vg10/lv10:cp:99"
Matches = re.findall("vg[0-9]*", mv)
print Matches
现在,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
重新导入
mv='/dev/mapper/vg8-lv8-eSPAN_MAX_d4:eSPAN_MAX_d4:99'
打印有关findall(r’(?
import-re
mv='/dev/mapper/vg8-lv8-eSPAN_MAX_d4:eSPAN_MAX_d4:99'


print re.findall(r’(?我们缺少了这篇文章的一部分,或者你的版本实际上只是加载了解释器?2.6.如何提取…?:)我们缺少了这篇文章的一部分,或者你的版本实际上只是加载了解释器?2.6.如何提取…?:)不,不,vg不总是第二项mm:(
In[404]:int(re.search('/dev/vg(\d+),mv).groups()[0])
Out[404]:10
但请小心,如果没有匹配项,这将引发一些错误。那么您到底要提取什么?您可以提供有关此项的更多详细信息吗?以及其他示例字符串。请参见本例中的Alex:/dev/mapper/vg8-lv8-eSPAN_MAX_d4:eSPAN_MAX_d4:99…为什么我不想提取vg不总是第二项mm:(
In[404]:int(re.search('/dev/vg(\d+),mv.groups()[0])
Out[404]:10
但请小心,如果没有匹配项,这将引发一些错误。那么您到底要提取什么?您可以提供有关此项的更多详细信息吗?以及其他示例字符串。请参阅本例中的Alex:/dev/mapper/vg8-lv8-eSPAN_MAX_d4:eSPAN_MAX_d4:99…为什么我只想将值设为10..而不是vg10I说再次解析内容!e扩展答案…
int(*re.findall(r'[0-9]+',匹配[0])
只有值应该是10..not vg10I说再次解析内容!扩展答案…
int(*re.findall(r'[0-9]+',匹配[0])
发布代码时,请确保使用四个空格(即“”)在每行之前。这会将文本格式化为代码块。发布代码时,请确保在每行之前使用四个空格(即“”)。这会将文本格式化为代码块。