我试图找到一种方法,使用perl从相当长的字符串中仅提取大写单词(至少三个连续的高位字符,加上数字)。
示例:
"Hello world, thank GOD it's Friday, I can watch EPISODE4"
输出:
"GOD EPISODE4"
出于某种原因,我无法想出一个合理的方法来做到这一点,任何想法?谢谢!
答案 0 :(得分:1)
使用字符类:
my @matches = ( $string =~ /\b[[:upper:]|[:digit:]]{3,}+\b/g );
say join " - ", @matches;
(你说的是大写字母和数字。你没有说明这个数字的位置。你也没有说我是否需要用这个数字做点什么
编辑您的问题以包含其他要求。)
答案 1 :(得分:0)
这将为您提供超过3个字符的大写单词,最后可能有也可能没有数字:
my $str = "Hello world, thank GOD its Friday, I can watch EPISODE4";
my @matches = ($str =~ /\b([A-Z]{3,}+[0-9]*)\b/g);
您可以修改它以在数字后面查找大写字符:
my @matches = ($str =~ /\b([A-Z]{3,}+[0-9]*[A-Z]*)\b/g);