如何在Notepad++中用正则书签两模式间行且不含模式行
正则匹配解决方案
问题场景
给定以下文本片段:
Newii 27,807,147 Supd 26,518,465 Ns. 26,175,538 Mai 24,930,812 Gas 0623,901,055 TEim 20,213,631 Tes GrV 18,968,412 Mytyttyst y htththt hyhyh October 2013 /////////////////////////
需要匹配**18,968,412和October 2013之间的所有行**,且不包含这两行本身,目标匹配结果为:
Mytyttyst y htththt hyhyh
解决方案正则
使用以下正则表达式即可精准匹配目标内容:
(?<=^\d+(?:,\d+)*$\R)(?:\R?.*)*?(?=\ROctober 2013)
正则解释
(?<=^\d+(?:,\d+)*$\R):正向断言,确保匹配内容之前是一行带逗号分隔的数字(如18,968,412),且后面跟着换行符(?:\R?.*)*?:非捕获组,匹配任意数量的行(包括空行),*?是惰性匹配,避免过度匹配(?=\ROctober 2013):正向断言,确保匹配内容之后是换行符加October 2013,不会包含该行本身
如果需要适配更通用的“日期行”而非固定October 2013,可以调整断言部分为(?=\R\w+ \d{4}),匹配任意月份加四位年份的行。
补充说明
如果你的编辑器支持多行模式(如Notepad++、VS Code),确保开启正则的多行匹配选项(^和$匹配每行首尾),该正则即可正常工作。
内容的提问来源于stack exchange,提问作者Pubg Mobile
相关产品推荐
相关产品推荐

