Проверьте, содержит ли строка подстроку



Как я могу проверить, содержит ли данная строка определенную подстроку, используя Perl?



более конкретно, я хочу посмотреть, будет ли s1.domain.com присутствует в данной строковой переменной.

514   3  

3 ответов:

чтобы узнать, содержит ли строка подстроку, вы можете использовать index функция:

if (index($str, $substr) != -1) {
    print "$str contains $substr\n";
} 

он вернет позицию первого вхождения $substr на $str, или -1, если подстрока не найдена.

еще одна возможность-использовать регулярные выражения вот чем славится Perl:

if ($mystring =~ /s1\.domain\.com/) {
   print qq("$mystring" contains "s1.domain.com"\n);
}

символы необходимы, потому что . может соответствовать любому символу. Вы можете обойти это с помощью \Q и \E операторы.

my $substring = "s1.domain.com";
    if ($mystring =~ /\Q$substring\E/) {
   print qq("$mystring" contains "$substring"\n);
}

или, вы можете сделать как Евгений y указано и использовать индекс

Пример Подстроки Без Учета Регистра

Это ответ Евгению, который преобразует строки в нижний регистр перед проверкой подстрока:

if (index(lc($str), lc($substr)) != -1) {
    print "$str contains $substr\n";
} 

Comments

    Ничего не найдено.