Perlの正規表現について学ぶ必要があります。Perlは正規表現を発明しませんでしたが、その概念を大幅に拡張しました。実際、他の多くのプログラミング言語は、 Perl正規表現の使用について具体的に話します。
正規表現は特定の単語パターンに一致します。たとえば、文字列内/cat/
のシーケンスcatに一致します。
if ( $string =~ /cat/ ) {
print "String contains the letters 'cat' in a row\n";
}
多くの点で、これは次と同じことを行います。
my $location = index ( $string, "cat" );
if ( $location =! -1 ) { # index returns -1 when substring isn't found
print "String contains the letters 'cat' in a row\n";
}
しかし、これらは両方とも一致します。
"Don't let the cat out of the bag"
"The Sears catalog arrived in the mail"
あなたは最後のものと一致したくありません。だから、あなたはこれを行うことができます:
my $location = index $string, " cat ";
今、index $string, " cat "
単語カタログと一致しません。名探偵コナン!またはそれは?どうですか:
"cat and dog it doth rain."
文が「猫」で始まる場合は、問題がないことを確認して言うことができます。
if ( (index ($string, " cat ") != -1) or (index ($string, "cat") = 0) ) {
print "String contains the letters 'cat' in a row\n";
}
しかし、これらはどうですか?
"The word CAT in all uppercase"
"Stupid cat"
"Cat! Here Cat! Common Cat!"
:「猫」という単語の後の句読点
"Don't let the 'cat' out of the 'bag'"
:「猫」の周りの引用符
これらの条件をすべて指定するには、数十行かかる場合があります。
でも:
if ( $string =~ /\bcat\b/i ) {
print "String contains the word 'cat' in it\n";
}
一人一人を指定し、次にいくつかを指定します。これ\b
は単語の境界だと言います。これは、スペース、タブ、引用符、行の先頭または末尾である可能性があります。したがって/\bcat\b/
、これは単語cat
であり、ではないことを指定しますcatalog
。最後のi
onは、一致するときに大文字と小文字を無視するように正規表現に指示するため、、、、、、およびその他すべてCat
の可能cat
な組み合わせCAT
が見つかります。cAt
実際、Perlの正規表現は、Perlをそもそもそのような人気のある言語にした理由です。
幸い、Perlには正規表現に関するチュートリアルが1つではなく、2つ付属しています。
お役に立てれば。