gpt4 book ai didi

regex - 如何使用 smartmatch 检查字符串是否与数组中的所有模式匹配?

转载 作者:行者123 更新时间:2023-12-03 02:11:48 25 4
gpt4 key购买 nike

我想检查一个字符串是否匹配多个正则表达式模式。我遇到了related question ,布拉德·吉尔伯特answered使用 smartmatch 运算符:

my @matches = (
qr/.*\.so$/,
qr/.*_mdb\.v$/,
qr/.*daidir/,
qr/\.__solver_cache__/,
qr/csrc/,
qr/csrc\.vmc/,
qr/gensimv/,
);

if( $_ ~~ @matches ){
...
}

如果任何模式匹配,则输入 if 语句,但我想检查所有模式是否匹配。我怎样才能做到这一点?

最佳答案

smartmatch 运算符不支持这一点。您必须自己构建它。 List::MoreUtils 'all这样做似乎很棒。

use strict;
use warnings 'all';
use feature 'say';
use List::MoreUtils 'all';

my @matches = (
qr/foo/,
qr/ooo/,
qr/bar/,
qr/asdf/,
);

my $string = 'fooooobar';
say $string if all { $string =~ $_ } @matches;

这没有输出。

如果将 $string 更改为 'fooooobarasdf' 它将输出该字符串。

关于regex - 如何使用 smartmatch 检查字符串是否与数组中的所有模式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39394269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com