我有我的輸入文件中的字典單詞列表,我試圖模式匹配一個單詞,其中包含所有元音(a,e,i,o,u)出現在字按順序排列。他們不必緊挨着彼此。現在,這是我的代碼有:與Perl匹配的模式
open(INFILE, "words.txt") or die "Can't open word.txt: $!";
while(<INFILE>){
$word = <INFILE>;
if($word =~ /[a-z][a-zA-Z]*a[a-zA-Z]*e[a-zA-Z]*i[a-zA-Z]*o[a-zA-Z]*u[a-zA-Z]*/){
print $word;
}
}
close(INFILE);
但我不返回的話,即使我知道有我在這種模式輸入的詞。我可以得到解釋爲什麼?這是作業。
編輯:第一個字母必須小寫,所有元音必須小寫。另外,當搜索aeiou圖案時,我不能重複。
EDIT2:將匹配單詞的一個示例是不匹配abstemiousness
,aAbstemiousness
和badetikojuw.
實例是ambeeiou
(E的重複之前它發現AEIOU的完整圖案),0abstemiousness
(非字母0),Taeiou
(以大寫字母開頭),baEstmious
(沒有發現小寫e
)。
只是一些建議,你應該使用三個參數打開。 'open(my $ infile,「<」,「words.txt」)',並在'while'循環中設置'my $ word'或者在裏面使用默認的'$ _'變量。我更喜歡'while(my $ word = <$infile>)'。 – squiguy 2013-03-12 04:02:09
感謝您的提示!然而,你能解釋一下「<」是什麼嗎? – dtgee 2013-03-12 04:22:28
這只是說「打開這個文件閱讀」。這裏有一個很好的鏈接,說明爲什麼這被認爲是Perl 5.6的最佳實踐。 https://www.informit.com/articles/article.aspx?p=1582932&seqNum=2 – squiguy 2013-03-12 04:27:32