regex - 如何排除部分正则表达式匹配?
问题描述
是否可以排除部分正则表达式匹配?以这个场景为例:
FREE SOFT FOUNDATION V2 1989 PAGE 2
STALLMANWORKS 2000 1977;PAGE 2
THE GNU PAGE 3 1977
我正在尝试匹配FREE SOFT FOUNDATION
,STALLMANWORKS 2000
和THE GNU
。这很容易,但现在我必须排除[0-9;]+\s?(PAGE)
标题后面的任何组合。我尝试了否定的前瞻,但没有运气:
(?!([0-9]+\s?(PAGE)))([A-Z0-9\s]+)
解决方案
我不太确定这里可能需要什么,我的猜测是也许这个表达式
([\s\S].*?)\b((?:\s*\d+\s+;?|\s*\d+;)PAGE\s+\d+|\s*PAGE.*[0-9])
可以调查一下。在这里,我们会看到我们想要排除的内容,然后我们只需添加:
([\s\S].*?)
收集我们想要的字符。
演示
推荐阅读
- r - 如何根据多个变量的字符响应过滤数据?
- ms-access - 如何在访问中创建仅在报表的查询工具中可见的表?
- mysql - 如何在 codeigniter 框架上进行此查询?
- jenkins - 在 Jenkins 工作中,行为测试在任何失败后停止
- javascript - 我从页面导出了一些变量并尝试导入变量。但它不工作
- python - 回归分析中的“TypeError:列表索引必须是整数或切片,而不是 str”
- azure - 看不到 Azure CDN 的使用情况
- r - 如果最大组值 > 某个值,则过滤 data.table 组中的行
- ios - React-Native、IOS、Firebase - 由于“循环”而无法分发到 AppStore
- ios - 为什么 SwiftUI 中没有等效的 UICollectionView?