単純なテキストではなく、変数との一致を確認するにはどうすればよいですか。私は試した:
my $_text = 'Please Help me here!';
my $_searchingText = 'me';
if ($_text =~ $_searchingText) {
print 'yes!';
}
2つのオプション:
$_searchingText
正規表現パターンで補間します。
print 'yes' if $_text =~ /$_searchingText/;
$_searchingText
パターンとして宣言する:
$_searchingText = qr/me/;
print 'yes' if $_text =~ $_searchingText;
インデックス関数は、あなたが探していることだけを行うようです(これは、$_searchingText
内で「インデックス化」することです$_text
)。
これを試して:
#!/usr/bin/perl -w
use strict;
my $_text = 'Please Help me here!';
my $_searchingText = 'me';
if(index $_searchingText, $_text){
print 'yes!';
}
$_searchingText
または、変数を正規表現の一致演算子内に一致させることができます ( ):
#!/usr/bin/perl -w
use strict;
my $_text = 'Please Help me here!';
my $_searchingText = 'me';
if($_text =~ m/$_searchingText/){
print 'yes!';
}
お役に立てば幸いです。明確にできるかどうか教えてください
他の人が指摘したように、正規表現の周りに正規表現マーカーを配置する必要があります。
if ($_text =~ /$_searchingText/) {
そしてそうではない
if ($_text =~ $_searchingText) {
Perl では、文字列や数値だけでなく、正規表現を含むスカラー Perl 変数を使用することもできます。
my $_text = 'Please Help me here!';
my $_searchingText = qr/me/;
if ($_text =~ $_searchingText) {
print 'yes!';
}
qr
演算子は正規表現に含まれる値を作成するため、ステートメント$_searchingText
に区切り記号は必要ありません。if
それらはオプションです。正規表現の引用符のような演算子を参照してください。