我编写了一个程序来从文件中读取注册表项。 条目如下所示:
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]
也许这个条目是一个愚蠢的条目,但是有什么更好的方法可以把它分成上面的部分吗?
答案 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