我在RegEx备忘单的帮助下一直在解决这个问题,试图找出如何做到这一点,但我放弃了...我在Notepad ++中打开了这个冗长的文件,并希望删除所有行不要以数字(0..9)开头。我会使用N ++的查找/替换功能。我只是提到这一点,因为我不确定N ++正在使用的Regex实现...谢谢
实施例。从以下文字:
1hello
foo
2world
bar
3!
我想提取
1hello
2world
3!
不
1hello
2world
3!
通过在正则表达式上执行查找/替换。
答案 0 :(得分:23)
您可以使用^[^0-9].*
清除这些行,但会留下空白行。
Notepad ++使用scintilla,并使用其正则表达式引擎来匹配这些。
\ r和\ n从不匹配,因为在 Scintilla,正则表达式搜索 每行都行(删除 行尾字符)。
http://www.scintilla.org/SciTERegEx.html
要清除这些空白行,只能选择扩展模式,并将\ n \ n替换为\ n,如果处于Windows模式,请将\ r \ n \ r \ n更改为\ r \ n
答案 1 :(得分:8)
[^0-9]
是一个正则表达式,除了数字之外几乎可以匹配任何内容。如果你说^[^0-9]
你将它“锚定”到行的开头,在大多数正则表达式系统中。如果您想包含该行的其余部分,请使用^[^0-9].+
。
答案 2 :(得分:7)
^[^\d].*
标记整行,其第一个字符不是数字。检查数字前面是否确实没有空格。否则你必须使用不同的表达式。
<强>更新强>: 你必须分两步完成。首先清空不以数字开头的行。然后在扩展模式下删除空行。
答案 3 :(得分:3)
还可以在Notepad ++中使用书签技术。不久之前,我开始从这个功能中受益(很长一段时间,但最近才在UI中更加明显)。
只需调出查找对话框,为不以数字^\D.*$
开头的行键入正则表达式,然后选择全部标记。这将在左侧排水沟中放置像大理石一样的蓝色圆圈 - 这些是线条书签。然后只需从主菜单中选择搜索 - &gt;书签 - &gt;删除带书签的行。
书签很酷,你可以通过简单地选择复制书签行,打开新文档并在那里粘贴行来提取这些行。在查看日志文件时,我有时会使用这种技术。
答案 4 :(得分:1)
我不确定你在问什么。但是用于在开头找到带有数字的行的reg exp将是 ^ \ d *。 您可以删除与上面匹配的所有行,或者交替保留与此表达式匹配的所有行: ^ [^ \ d] *