在Python 3上使用Regex提取子字符串

时间:2017-06-22 03:58:26

标签: python regex python-3.x

我试图用Regex提取子字符串,

这是我的剧本:

import re
_text = "sdiskpart(device='D:\\', mountpoint='D:\\', fstype='FAT32', opts='rw,fixed')"
print(re.findall("device=(\\'.*\\')", _text))

我试图获取设备的价值,在此字符串中" D:\"

你可以看到我试过" device =(\'。* \')"与REgex并返回:

  

["' D:\',mountpoint =' D:\',fstype =' FAT32',opts =&#39 ; RW,固定'"]

我在REgex上不专业,我怎么能强迫它拿D:\并将其打印出来?

2 个答案:

答案 0 :(得分:2)

您可以使用非渴望的正则表达式

import re

print( re.findall("device='(.*?)'", _text))

注意。*?意思是非渴望,所以它会占用最少的字符,直到下一个字母为止。 ...

答案 1 :(得分:1)

参考https://docs.python.org/3/library/re.html

>>> print(re.findall("device=(\\'[A-Z]:\\\\')", _text))
["'D:\\'"]

您可能必须用[A-Z]替换*。我认为驱动器号仍然使用[A-Za-z]