我试图用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:\并将其打印出来?
答案 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]