【问题标题】:Notepad++ Regex to Insert Line between certain linesNotepad ++正则表达式在某些行之间插入行
【发布时间】:2014-08-22 14:44:36
【问题描述】:

我在 Notepad++ 中尝试过这个,但我不完全确定那里是否可行。我有一个 iCal 文件,我需要在其中插入一些缺失的“组织者”字段。例如,我需要

DTSTAMP:20140821T160519Z
UID:ExampleUID1

变成这样

DTSTAMP:20140821T160519Z
ORGANIZER;CN=Test:mailto:me@example.com
UID:ExampleUID1

组织者在某些情况下存在,并且不是静态值。如何在保持 DTSTAMP 字符串完整的同时做到这一点? Find DTSTAMP:[A-Za-z0-9_]*$\r\nUID: 找到条目,但我找不到要替换的内容。使用

DTSTAMP:^([A-Za-z0-9_])*$\r\nORGANIZER;CN=Test:mailto:me@example.com\r\nUID:

或其任何变体将实际的正则表达式文本 (^[A-Za-z0-9_]*$.) 注入结果中。

【问题讨论】:

    标签: regex string notepad++


    【解决方案1】:

    替换此模式:

    ^(DTSTAMP:.+)$
    

    使用这个替换字符串:

    \1\r\nORGANIZER;CN=Test:mailto:me@example.com
    

    你必须选中正则表达式模式(很明显),然后取消选中。匹配换行符选项。

    为了一些额外的安全,你也可以使用这个模式:

    ^(DTSTAMP:.+)$(?!\r\nORGANIZER)
    

    如果DTSTAMP 字段下方已存在ORGANIZER 字段,则不会插入该字段。

    另外,如果您的 iCal 文件是 UNIX 换行格式,请将每个 \r\n 替换为 \n

    【讨论】:

    • 组织者在某些情况下是存在的,并且不保证是静态的......应该可能提到(已添加)。不过,这很完美。谢谢。
    【解决方案2】:

    你可以使用这个正则表达式:

    (DTSTAMP.*)
    

    Working demo

    检查替换部分:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多