在字符串中查找字符并将其分配给变量

时间:2014-04-23 00:22:18

标签: python python-2.7

我正在使用Python 2.7.3

我正在尝试根据多行字符串为字符串drive分配一个字母。驱动器号可能总是不同,索引也可能总是在字母所在的位置不同。

在以下字符串中,我们可以看到该字母为K

string = Volume 2 RAW Partition 8 MB Healthy\n K:\XYZ\

在此字符串中,我们可以看到该字母为H

string2 = Volume 2 NEW VOLUME FAT Partition 8 MB Healthy\n H:\XYZ\

到目前为止,我可以使用以下内容查看字符串是什么,但我不确定如何使用replace来查找字母。 (提示:这将是#four spaces here + .* + \\XYZ)...

if re.search(r'.*Volume.*\n.*XYZ.*', mainLine):
    drive = mainLine.replace(r'.*Volume.*\n    .*:\\XYZ.*', )
    print drive

2 个答案:

答案 0 :(得分:2)

假设每个源字符串总是只有一个':',紧跟在驱动器号后面:

drive = source[source.index(':') - 1]

答案 1 :(得分:1)

您可以使用以下正则表达式执行此操作:

s = re.search(r'(\w):\\\w+', string).group(1)
s2 = re.search(r'(\w):\\\w+', string2).group(1)

>>> print s
K

>>> print s2
H

您的字符串必须如下:

string = 'Volume 2                      RAW    Partition      8 MB  Healthy\n K:\XYZ\\'
string2 = 'Volume 2         NEW VOLUME   FAT    Partition      8 MB  Healthy\n    H:\XYZ\\'

DEMO