我試圖找到一種方法來從相當長的字符串中使用perl提取僅大寫單詞(至少三個連續的上部字符,加上數字)。如何使用perl提取長字符串中的大寫單詞
例子:
"Hello world, thank GOD it's Friday, I can watch EPISODE4"
輸出:
"GOD EPISODE4"
出於某種原因,我不能拿出一個合理的方式來做到這一點,任何想法?謝謝!
我試圖找到一種方法來從相當長的字符串中使用perl提取僅大寫單詞(至少三個連續的上部字符,加上數字)。如何使用perl提取長字符串中的大寫單詞
例子:
"Hello world, thank GOD it's Friday, I can watch EPISODE4"
輸出:
"GOD EPISODE4"
出於某種原因,我不能拿出一個合理的方式來做到這一點,任何想法?謝謝!
使用字符類:
my @matches = ($string =~ /\b[[:upper:]|[:digit:]]{3,}+\b/g);
say join " - ", @matches;
(你說大寫字符和號碼。你沒有指定號碼的位置。你也沒有說我是否需要對號碼做些什麼。
編輯您的問題以包含其他要求)。
謝謝,雖然'說'命令不適合我,也許我有一箇舊版本的Perl。 –
你必須添加'use feature qw(say);'到程序的頂部,並且Perl的版本比5.10(大約7歲)更新。 –
這將讓你任何大寫單詞是超過300個字符,這可能會或可能不會有在年底的數字:
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);
你看這個:http://stackoverflow.com/questions/19200886/extract-uppercase-words-with-optional-numbers-and-underscore-characters? – AntonH
也要求檢測數字和減去一個使它有點難... – vonbrand
感謝您的編輯,我有一些錯字號碼,我只想要提取的數字查詢不會改變它。 –