gpt4 book ai didi

arrays - 是字符串中包含的任何数组项

转载 作者:行者123 更新时间:2023-12-04 23:56:02 25 4
gpt4 key购买 nike

我有一个关键字列表和一个黑名单。
我想删除包含任何黑名单项目的所有关键字。
目前我这样做:

my @keywords = ( 'some good keyword', 'some other good keyword', 'some bad keyword');
my @blacklist = ( 'bad' );

A: for my $keyword ( @keywords ) {
B: for my $bl ( @blacklist ) {
next A if $keyword =~ /$bl/i; # omitting $keyword
}
# some keyword cleaning (for instance: erasing non a-zA-Z0-9 characters, etc)
}

我想知道有没有最快的方法来做到这一点,因为目前我在黑名单中有大约 2500 万个关键字和几个单词。

最佳答案

最直接的选择是join将黑名单条目转换为单个正则表达式,然后 grep与该正则表达式不匹配的关键字列表:

#!/usr/bin/env perl    

use strict;
use warnings;
use 5.010;

my @keywords =
('some good keyword', 'some other good keyword', 'some bad keyword');
my @blacklist = ('bad');

my $re = join '|', @blacklist;
my @good = grep { $_ !~ /$re/ } @keywords;

say join "\n", @good;

输出:
some good keyword
some other good keyword

关于arrays - 是字符串中包含的任何数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16731451/

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