我想从属于特定用户的日志中过滤所有内容。 使用以下模式,和"。匹配换行符"选项已启用,我可以匹配我正在寻找的所有内容,但是当我要求Notepad ++为这些行添加书签以便我可以复制它们时,会发生一些奇怪的事情。
([^\n]+)userB(.+?)(?=([0-9]{4}-[0-9]{2}-[0-9]{2}))
在第2行和第8行的前面,我看到一个书签图标,但是线条:3,4,5和9,10,11缺少一个图标,尽管它们属于突出显示的文本。
为什么Notepad ++会突出显示文字,但是没有正确放置书签?更重要的是,我该如何解决这个问题?
这是我正在使用的日志:
2015-03-02 11:28:44,993 INFO application [http-0.0.0.0-8080-17] userA 99:7 12345 some message
2015-03-02 11:28:45,468 WARN application [http-0.0.0.0-8080-9] userB 12:2 some message
extra information
at some.classes.and.function(Filename.java:123)
at some.classes.and.function(Filename.java:123)
2015-03-02 11:28:44,993 INFO application [http-0.0.0.0-8080-17] userA 99:7 12345 some message
2015-03-02 11:28:44,993 INFO application [http-0.0.0.0-8080-17] userA 99:7 12345 some message
2015-03-02 11:28:45,468 WARN application [http-0.0.0.0-8080-9] userB 12:2 some message
extra information
at some.classes.and.function(Filename.java:123)
at some.classes.and.function(Filename.java:123)
2015-03-02 11:28:44,993 INFO application [http-0.0.0.0-8080-17] userA 99:7 12345 some message
答案 0 :(得分:1)
以下内容将在不使用书签的情况下提取您想要的信息,并且可以在Notepad ++版本6.9.1之后使用。
它假定额外信息的行不以数字开头
它会从数据文件中删除复制的行,因此如果要保留它,请处理数据文件的副本
它不是很有效,因为切换选项卡命令将光标定位在选项卡文本的开头
它复制了userB的最后一个匹配项。 (轻微刺激!)
描述
1) Define shortcuts for switching to next & previous tabs
2) Open the data file with Notepad++
3) Open a new tab then go back to the data file tab
4) Define a macro `Cut User data. Paste in next tab`
5) Run the macro `Cut User data. Paste in next tab` on the data file to `end of file`
(It needs to be run once prior to running it in `Run a Macro Multiple Times`
because of a quirk of Notepad++)
方法
1)Settings
Shortcut Mapper
Main menu
Switch to previous document
= Ctrl+Alt+Left
Switch to next document
= Ctrl+Alt+Right
Close
2)使用Notepad ++打开数据文件
3)File
New
Ctrl+Alt+Left
4)Start Recording
Find
找到:.+ userB.+\r\n(\D.+\r\n)*
搜索模式=正则表达式
Find Next
Alt+F4
Ctrl+X
Ctrl+Alt+Right
Ctrl+End
Ctrl+V
Ctrl+Alt+Left
Stop recording
Save Current Recorded Macro
姓名:Cut User data. Paste in next tab
OK
5)Macro
Cut User data. Paste in next tab
Run a Macro Multiple Times
要运行的宏:Cut User data. Paste in next tab
运行直到文件结束=是
Run
然后停止Cancel
答案 1 :(得分:0)
(编辑为答案。)
至少在当前版本的Notepad ++中,使用宏解决方案和切换选项卡时,宏会暂停,而切换对话框会出现。
您必须首先进入设置,MISC。,文档切换器,并禁用两个复选框。至少在v7.6中是如此。