正则表达式 – 确认 – 搜索多种模式(逻辑AND)
发布时间:2020-12-14 05:37:43 所属栏目:百科 来源:网络整理
导读:如何使用ack搜索文件以查找包含所有(或任何)已定义模式的行? ANY(OR)很简单,例如: ack 'pattern1|pattern2|pattern3' 但如何写AND(ALL)?例如如何写以下内容: if( $line =~ /pattern1/ $line =~ /pattern2/ $line =~ /pattern3/ ) { say $line} 用ack?
如何使用ack搜索文件以查找包含所有(或任何)已定义模式的行?
ANY(OR)很简单,例如: ack 'pattern1|pattern2|pattern3' 但如何写AND(ALL)?例如如何写以下内容: if( $line =~ /pattern1/ && $line =~ /pattern2/ && $line =~ /pattern3/ ) { say $line } 用ack? 或者更准确地说,是否有可能创建一个具有逻辑的正则表达式? 解决方法/foo/s && /bar/s && /baz/s 可写成 /^(?=.*?foo)(?=.*?bar)(?=.*?baz)/s 我们实际上并不需要预测最后一个. /^(?=.*?foo)(?=.*?bar).*?baz/s 而且,由于我们不关心如果有多个模式的哪个实例匹配,我们可以将其简化为 /^(?=.*foo)(?=.*bar).*baz/s (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |