删除括号之间的任何内容

时间:2016-05-11 18:52:59

标签: python regex registry

因为我现在正在使用Windows注册表。我总是找到以下模式..注册表包含两个括号{},中间有数字和字母,您可以在下面看到一些示例:

HKEY_CLASSES_ROOT\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}

HKEY_CLASSES_ROOT\CLSID\{00BB2763-6A77-11D0-A535-00C04FD7D062}\InProcServer32

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\CPC\Volume\{64dcb6fa-03c9-11e6-9e9f-806d6172696f}\

任何人都可以帮助我理解这些是指什么?他们随机生成了吗?

我还尝试解析每个注册表项并删除括号之间的任何内容{} ..作为开头,我知道这可以通过正则表达式来完成,但我真的不熟悉它们......任何指导都很感激。

4 个答案:

答案 0 :(得分:1)

{.*?}替换为{}(如果一行中有两个GUID,则为懒点)

demo

字符串为Globally Unique Identifiers。来自here

  

GUID(或UUID)是“全球唯一标识符”的首字母缩写词。 (要么   '普遍唯一的标识符')。它是一个128位整数   识别资源。术语GUID通常由开发人员使用   使用Microsoft技术,而UUID随处可见   其他

     

128位足够大,生成算法足够独特   如果1年内每秒生成1,000,000,000个GUID,那么   重复的概率仅为50%。或者如果每个人都在   地球产生了600,000,000个GUID,那里只有50%   重复的可能性。

     

GUID用于C#,Java和C ++中的企业软件开发   作为数据库键,组件标识符,或几乎任何其他地方   需要真正唯一的标识符。 GUID也用于识别   COM编程中的所有接口和对象。

答案 1 :(得分:0)

当您使用Python标记问题时(使用2.7进行测试):

import re

string = """
HKEY_CLASSES_ROOT\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}
HKEY_CLASSES_ROOT\CLSID\{00BB2763-6A77-11D0-A535-00C04FD7D062}\InProcServer32
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\CPC\Volume\{64dcb6fa-03c9-11e6-9e9f-806d6172696f}
"""

rx = r'\{[^}]+\}\\?'
string = re.sub(rx, '', string)
print string

该代码段为您提供所有没有花括号的键。感谢@Liam之前指出错误。
提示:我是Mac用户,但是,我很确定支架是否有些需要,不是吗?

答案 2 :(得分:0)

在这种情况下,正则表达式是最合适的。只需使用:

import re
string = 'HKEY_CLASSES_ROOT\CLSID\{00BB2763-6A77-11D0-A535-00C04FD7D062}\InProcServer32'
string = re.sub('{(.+)}', '', string)

答案 3 :(得分:0)

你尝试过这样的事吗?

string js =
    "$(function() {" +
        "$('#" + txtDate.ClientID + " tr:last')" +
        ".find('input[type=\"text\"]')" +
        ".datepicker();" +
    "});";