Regex Perl使用带变量的匹配函数

Regex Perl使用带变量的匹配函数,regex,perl,match,Regex,Perl,Match,如何使用变量而不是简单文本检查匹配。 我试过: 两种选择: 在正则表达式模式中插入$\u searchingText: print 'yes' if $_text =~ /$_searchingText/; 将$\u searchingText声明为模式: $_searchingText = qr/me/; print 'yes' if $_text =~ $_searchingText; 两种选择: 在正则表达式模式中插入$\u searchingText: print 'yes' i

如何使用变量而不是简单文本检查匹配。 我试过:

两种选择:

  • 在正则表达式模式中插入
    $\u searchingText

    print 'yes' if $_text =~ /$_searchingText/;
    
  • $\u searchingText
    声明为模式:

    $_searchingText = qr/me/;
    print 'yes' if $_text =~ $_searchingText;
    
  • 两种选择:

  • 在正则表达式模式中插入
    $\u searchingText

    print 'yes' if $_text =~ /$_searchingText/;
    
  • $\u searchingText
    声明为模式:

    $_searchingText = qr/me/;
    print 'yes' if $_text =~ $_searchingText;
    

  • 索引函数似乎可以完成您想要做的事情(它似乎是在
    $\u text
    中“索引”
    $\u searchingText

    试试这个:

    #!/usr/bin/perl -w
    use strict;
    
    my $_text = 'Please Help me here!';
    my $_searchingText = 'me';
    
    if(index $_searchingText, $_text){
        print 'yes!';
    }
    
    或者,您可以将要匹配的变量(
    $\u searchingText
    )放入正则表达式匹配运算符中:

    #!/usr/bin/perl -w
    use strict;
    
    my $_text = 'Please Help me here!';
    my $_searchingText = 'me';
    
    if($_text =~ m/$_searchingText/){
        print 'yes!';
    }
    

    希望有帮助;如果我能澄清一下,请告诉我,索引函数似乎可以做您想要做的事情(它似乎是在
    $\u text
    中“索引”
    $\u searchingText

    试试这个:

    #!/usr/bin/perl -w
    use strict;
    
    my $_text = 'Please Help me here!';
    my $_searchingText = 'me';
    
    if(index $_searchingText, $_text){
        print 'yes!';
    }
    
    或者,您可以将要匹配的变量(
    $\u 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
    运算符将
    $\u searchingText
    中包含的值作为正则表达式,因此在
    if
    语句中不需要分隔符。它们是可选的。请参阅。

    正如其他人指出的,您需要在正则表达式周围放置正则表达式标记:

    if ($_text =~ /$_searchingText/) {
    
    而不是

    if ($_text =~ $_searchingText) {
    

    Perl还可以具有标量Perl变量,该变量包含正则表达式,而不仅仅是字符串或数字:

    my $_text = 'Please Help me here!';
    my $_searchingText = qr/me/;
    if ($_text =~ $_searchingText) {
        print 'yes!';
    }
    

    qr
    运算符将
    $\u searchingText
    中包含的值作为正则表达式,因此在
    if
    语句中不需要分隔符。它们是可选的。看。

    你试过了吗?然后呢?这对我有用!看这里,你试过了吗?然后呢?这对我有用!看这里,再测试一次;在我的终端工作。。。index函数在另一个字符串中搜索一个字符串,但没有完全正则表达式模式匹配的类似通配符的行为;在我的终端工作。。。index函数在另一个字符串中搜索一个字符串,但没有完全正则表达式模式匹配的类似通配符的行为。