入力ファイルに辞書の単語のリストがあり、その単語に現れるすべての母音 (a、e、i、o、u) を持つ単語のパターン マッチを試みています。それらは互いにすぐ隣にある必要はありません。現在、これは私が持っているコードです:
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
(aeiou の完全なパターンが見つかる前に e を繰り返す)、0abstemiousness
(文字 0 以外)、Taeiou
(大文字で始まる)、baEstmious
(小文字ではない) です。ケースe
発見)。