如何用REGEX匹配LOCATIONS章节下的OLA Handbook及对应编号
正则优化方案
你原先的正则(?=LOCATIONS).*$仅能匹配LOCATIONS所在的单行内容,无法提取跨行的多个OLA Handbook条目,也不能过滤后续其他章节的内容,可按以下方案操作:
一步匹配正则(PCRE2引擎适用,Notepad++/regex101均支持)
(?:\G(?!^)|LOCATIONS:)[\s\S]*?\KOLA Handbook \d+\.\d+
规则说明:
(?:\G(?!^)|LOCATIONS:)锚定匹配起点,要么从LOCATIONS:的位置开始,要么从上一次匹配结束的位置继续[\s\S]*?非贪婪匹配任意字符(包括换行)\K丢弃前面已经匹配的内容,仅保留后面需要的结果OLA Handbook \d+\.\d+匹配目标字符串加编号规则
Notepad++分步操作(更稳妥,适合新手)
- 提取LOCATIONS章节专属内容:
按下Ctrl+H打开替换面板,查找目标填^.*LOCATIONS:([\s\S]*?)^\d+\. .*$,替换为$1,点击「全部替换」,此时仅保留LOCATIONS:之后到下一个章节前的内容 - 提取所有目标条目:
查找目标填.*(OLA Handbook \d+\.\d+).*,替换为$1,点击「全部替换」即可得到预期输出。
内容的提问来源于stack exchange,提问作者Eisen
相关产品推荐
相关产品推荐

