分裂字符串的问题

时间:2011-08-18 13:27:46

标签: python string

我编写了一个程序来从文件中读取注册表项。 条目如下所示:

reg='HKEY_LOCAL_MACHINE\SOFTWARE\TT\Tools\SYS\exePath' #it means rootKey=HKEY_LOCAL_MACHINE, subKey='SOFTWARE\TT\Tools\SYS', property=exePath

我想从文件中读取此条目并将其分解为rootKey,subKey和property。 显然,我可以这样做:

rootKey = reg.split('\\', 1)[0]
subKey = reg.split('\\', 1)[1].rsplit('\\', 1)[0]  #might be a stupid way
property = reg.rsplit('\\, 1)[1]

也许这个条目是一个愚蠢的条目,但是有什么更好的方法可以把它分成上面的部分吗?

3 个答案:

答案 0 :(得分:4)

import re

t=re.search(r"(.+?)\\(.+)\\(.+)", reg)
t.groups()
('HKEY_LOCAL_MACHINE', 'SOFTWARE\\TT\\Tools\\SYS', 'exePath')

答案 1 :(得分:2)

如何做到以下几点?无论如何都没有必要多次拨打.split() ......

s = reg.split('\\')
property = s.pop()
root_key = s.pop(0)
sub_key = '\\'.join(s)

答案 2 :(得分:0)

我喜欢在partition之后使用split,因为partition确保每个返回的元组元素都是字符串。

root_key, _, s       = reg.partition("\\")
_, sub_key, property = s.rpartition("\\") # note, _r_partition