我试图自己解决这个问题,但我需要一些帮助。
我的系统日志中有一个强大的功能 - 虽然我知道 grep 会更容易,但我有构建正则表达式的理由。
例如: somerandomstufffilter-category=Web_Advertisements|andhereis more random stuff
在那乱七八糟的混乱中,有一个确切的字符串'filter-category=Web_Advertisements|'
我创建了这个正则表达式: (filter-category=).*?(?=["|"])
它将我想要的确切字符串拉到管道上。而不是给我整个字符串,我只想要等号之后的所有内容(而不是将它包含在我的匹配中),并且在管道之前。
现在我得到: 'filter-category=Web_Advertisements'
我想要得到的是: 'Web_Advertisements'
靠它自己。诀窍是过滤器类别之后的任何内容都可以是任何内容,而不仅仅是网络广告。这就是为什么它必须以它遇到的第一个管道结束。