正则表达式 | 使用零宽断言去除不想捕获的文本

(?:.(?<!\d))+?(?=\s+\d+)

使用该表达式去除目录页数,捕获文本内容

[^\r\n0-9]+?(?=\s+\d+)

或使用该表达式可去除换行和目录页数,捕获文本内容

 

(?<=">).+?(?=</p>)

使用该表达式提取百度文库网页文件中文本内容

 

有关零宽断言

代码 说明 举例
(?=exp) 匹配exp前面的位置 \w+(?=ing) 后面是ing
(?<=exp) 匹配exp后面的位置 (?<=re)\w+ 前面是re
(?!exp) 匹配后面跟的不是exp的位置 \w+?(?!\d) 后面不含数字的文本
(?<!exp) 匹配前面是跟的不是exp的位置 (?<!\d)\w+? 前面不含数字的文本

 

 

 

 

 

 

 

零宽断言断言的是一个位置,像\b((?!abc)\w)+\b这样的表达式,意思是匹配不包含连续字符串abc的文本。

附上自己学习正则的文章原文链接 https://deerchao.cn/tutorials/regex/regex.htm

 

posted @ 2020-06-17 16:17  康舒服冰红茶  阅读(232)  评论(0编辑  收藏  举报