Notepad++ 记事本++;reg表达式从日志文件中提取xml消息
我有一个日志文件,其内容如下。我试图提取与少量itemnumber匹配的xml分段,比如6654721、6654722和6654725。预期的输出是完整的xml分段,与这三个itemnumber匹配。我尝试使用正则表达式Notepad++ 记事本++;reg表达式从日志文件中提取xml消息,notepad++,Notepad++,我有一个日志文件,其内容如下。我试图提取与少量itemnumber匹配的xml分段,比如6654721、6654722和6654725。预期的输出是完整的xml分段,与这三个itemnumber匹配。我尝试使用正则表达式(.*?,它精确地找到了每个xml分段,然后我尝试应用类似(.*(6654721 | 6654722 | 6654725)。*?)的过滤器,但这并没有按预期工作。有人能帮我解决这个问题吗?感谢您的及时回复 2017-04-20 some log file 2017-04-20
(.*?
,它精确地找到了每个xml分段,然后我尝试应用类似(.*(6654721 | 6654722 | 6654725)。*?)
的过滤器,但这并没有按预期工作。有人能帮我解决这个问题吗?感谢您的及时回复
2017-04-20 some log file
2017-04-20 some log file
2017-04-20 some log file
<Record>
<itemname>Lego Fire Rescue</itemname>
<itemnumber>6654721</itemnumber>
<availableinv>19</availableinv>
<ageplus>3</ageplus>
<storeId>19</storeId>
</Record>
2017-04-20 some log file
2017-04-20 some log file
2017-04-20 some log file
<Record>
<itemname>Lego Fire Rescue</itemname>
<itemnumber>6654722</itemnumber>
<availableinv>19</availableinv>
<ageplus>3</ageplus>
<storeId>19</storeId>
</Record>
2017-04-20 some log file
2017-04-20 some log file
2017-04-20 some log file
<Record>
<itemname>Lego Fire Rescue</itemname>
<itemnumber>6654723</itemnumber>
<availableinv>19</availableinv>
<ageplus>3</ageplus>
<storeId>19</storeId>
</Record>
2017-04-20 some log file
2017-04-20 some log file
2017-04-20 some log file
<Record>
<itemname>Lego Fire Rescue</itemname>
<itemnumber>6654725</itemnumber>
<availableinv>19</availableinv>
<ageplus>3</ageplus>
<storeId>19</storeId>
</Record>
2017-04-20一些日志文件
2017-04-20一些日志文件
2017-04-20一些日志文件
乐高消防救援
6654721
19
3.
19
2017-04-20一些日志文件
2017-04-20一些日志文件
2017-04-20一些日志文件
乐高消防救援
6654722
19
3.
19
2017-04-20一些日志文件
2017-04-20一些日志文件
2017-04-20一些日志文件
乐高消防救援
6654723
19
3.
19
2017-04-20一些日志文件
2017-04-20一些日志文件
2017-04-20一些日志文件
乐高消防救援
6654725
19
3.
19
此正则表达式执行以下任务:
<Record[^>]*>(?:(?!</Record>).)*\b(?:6654721|6654722|6654725)\b.*?</Record>
]*>(?:(!)*\b(?:6654721 | 6654722 | 6654725)\b.*?
说明:
<Record[^>]> : '<Record>' with optional attributes
(?: : start non capture group
(?! : start negative lookahead, make sure we have not the following
</Record> : literally '</Record>'
) : end lookahead
. : any character
)* : repeat the non capture group, at this place we are sure we have not </Record>
\b : word boundary
(?: : non capture group
6654721 : 6654721
| : OR
6654722 : 6654722
| : OR
6654725 : 6654725
) : end group
\b : word boundary
.*? : 0 or more any character, non greedy
</Record> : literally '</Record>'
]>:“”具有可选属性
(?::启动非捕获组
(?!:开始负前瞻,确保我们没有以下内容
:字面意思为“
):结束展望
:任何字符
)*:重复非捕获组,在这里我们确定没有
\b:词界
(?::非捕获组
6654721 : 6654721
|:或
6654722 : 6654722
|:或
6654725 : 6654725
):端组
\b:词界
.*? : 0个或更多任意字符,非贪婪
:字面意思为“
太好了,这很好用。正是我想要的。谢谢。如果某些标签具有类似的属性,请帮助我使其工作。我仍然希望看到相同的答复。如果此答复解决了您的问题,您应该接受它。很抱歉延迟答复。你的编辑工作完美。非常感谢您提供的解决方案。另一个帮助是,我尝试按照线程中建议的“搜索-->书签-->复制书签行”选项复制所有匹配行,它只是复制每个匹配的第一行,而不是复制每个匹配的所有行。有没有办法复制每场比赛的所有行?@Ponns:对不起,我看不到解决办法。您可以在Npp社区中找到一些帮助: