【问题标题】:Notepad++ RegEx delete line starting with \pard.....ending with line feedNotepad++ RegEx 删除以 \pard 开头的行.....以换行结尾
【发布时间】:2010-10-24 18:16:05
【问题描述】:

我正在使用记事本 ++ 清理文件,并尝试删除以 \pard 开头的行并包含一些文本,然后以换行符结尾。但是\n 在 RegEx 中不起作用,.* 在扩展查找和替换中不起作用。

这是我尝试失败的方法:\pard.*\n

\pard.* 有效,但在 RegEx 中保留换行符。

【问题讨论】:

  • 我认为this answer 到一个密切相关的问题会满足你的需要。
  • 是的,我认为 Cameron 的建议是您将要做的最好的 - 至少使用 Notepad++。我建议您使用支持 real 正则表达式的编辑器,例如 EditPad Pro。 editpadpro.com
  • 致未来的任何人:您也可以尝试 stackoverflow.com/a/918225 并推迟学习正则表达式的时间(但我相信,它总有一天会发生)。

标签: regex notepad++ replace linefeed


【解决方案1】:
\\pard.*(\r)?\n

中继器后面的问号是为了让它不贪婪,否则它会吞下大部分文件,包括它不应该的部分......

已编辑:现在它应该正确处理换行符

编辑:试试这个

^\\pard.*$

【讨论】:

  • Notepad++ 无法识别贪婪/不贪婪的修饰符。
  • 问题不在于回车,而在于 Notepad++ 本身。 NPP 的“正则表达式”搜索模式一次只在一行上工作——它实际上在应用正则表达式之前去掉了行分隔符。它的“扩展”模式支持多种转义,包括\n\r 等,但没有与正则表达式(甚至全局)相关的其他功能。没有办法将这两种模式结合起来。正如 OP 所说,您可以使用行分隔符或正则表达式,但不能同时使用。
  • 不知道有办法,以前一直在用(换linux之前)试试新的...
  • 不! ^\\pard.*$ 在 NPP 中的工作方式就像在任何其他风格中一样:它找到正确的行,但匹配不包括行分隔符(前导 尾随)。也许您正在考虑来自 Cameron 链接到的其他线程中的“查找所有/删除书签行”技巧。或者一个插件。
  • 感谢大家的关注,不幸的是,我不得不手动完成任务,并且不再有文件来试用您的建议。再次感谢。
【解决方案2】:

你的意思是“\pard”还是“\p”ard?如果是第一个,则需要用另一个“\”转义“\”。

\\pard.*\n

您可能还需要查看换行符实际上是一种 pc 格式,即 \r\n

\\pard.*\r\n

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多