【问题标题】:notepad++ regex expressionnotepad++ 正则表达式
【发布时间】:2017-06-09 16:58:44
【问题描述】:

我有以下问题。文件包含这样的记录:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.sometexthere\: "some.text.here"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.sometexthere\Content Type: "sometexthere/sometexthere"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\sometexthere.sometexthere\sometexthere: "{B571EB41-3BD6-405F-9CA7-DFA4B8D1564E}"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\sometexthere\sometexthere: "{F064F716-AEBF-4AAC-8FC4-1ED635A026BE}"

我希望将其替换为:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.sometexthere]
@="some.text.here"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.sometexthere]
"Content Type"="sometexthere/sometexthere"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\sometexthere.sometexthere]
"sometexthere"="{B571EB41-3BD6-405F-9CA7-DFA4B8D1564E}"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\sometexthere]
"sometexthere"="{F064F716-AEBF-4AAC-8FC4-1ED635A026BE}"

请你帮我找出两个正则表达式来做到这一点。

【问题讨论】:

  • 抱歉,说的太不清楚太笼统了。没有正则表达式可以安全地匹配任意注册表路径,您只能匹配您设置特定要求的那些。 simetexthere是不是动态的不清楚,拆分规则比较模糊。

标签: regex windows registry notepad++


【解决方案1】:

您可以分两步尝试使用两个替换项:

  1. 像这样进行正则表达式查找/替换:

    • 打开替换对话框
    • 查找内容: ^((.*)\\([^\\]*):[ ]*"([^"]*"))
    • 替换为: [\2]\r\n"\3"=\4
    • 检查正则表达式
    • 点击替换或全部替换

现在它应该看起来像您的示例第一行中所要求的那样,直到 @。我们需要这第二步:

  1. 像这样进行正常的查找/替换:

    • 打开替换对话框
    • 查找内容: ^""=
    • 替换为: @=
    • 点击替换或全部替换

正如 Wiktor 已经评论的那样,这可能有效,也可能无效。这取决于您的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 2012-04-01
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    相关资源
    最近更新 更多