繁体   English   中英

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

[英]Extract substring with Regex on Python 3

我正在尝试使用Regex提取子字符串,

这是我的脚本:

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

我正在尝试获取设备的值,在此字符串中为“ D:\\”

如您所见,我用REgex尝试了“ device =(\\'。* \\')”,它返回了:

[“'D:\\',mountpoint ='D:\\',fstype ='FAT32',opts ='rw,fixed'”]]

我在REgex上不是专业人士,如何强制它采用D:\\并打印出来?

您可以使用非热切的正则表达式

import re

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

注意。*吗? 表示不急,所以它将花费最少的字符直到下一个'...

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

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

您可能需要将*替换为[AZ]。 我认为驱动器盘符总是大写,否则使用[A-Za-z]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM