Как я могу проверить aaa или aab или a в строке Perl? - PullRequest
0 голосов
/ 17 октября 2010

Может кто-нибудь сказать мне, какой шаблон мне нужно написать в выражении связывания, если я хочу проверить, содержит ли строка aaa или aab или a?

$str = "Hello how are aaa you?";
print $str =~ m/what should i write here?/;

Ответы [ 4 ]

8 голосов
/ 17 октября 2010
$str =~ /a|aaa|aab/

Возможно, вы захотите проверить приоритет обычного оператора , чтобы убедиться, что вас не поймают такие вещи, как /^foo|bar$/ (соответствует ^foo или bar$, в отличие от ^(foo|bar)$).

6 голосов
/ 17 октября 2010
$str =~ /a/

(Подумайте об этом ...)

3 голосов
/ 17 октября 2010

(aaa|aab|a) ...

0 голосов
/ 17 октября 2010

Учитывая точку зрения mscha (ответ не комментарий) Интересно, действительно ли вы хотите соответствовать и сохранить.Если вы хотите узнать, что вы нашли, попробуйте что-то вроде глобального совпадения, записанного в массив.

#!/usr/bin/perl

use strict;
use warnings;

my $str = "Hello how are aaa you?";
my @found = $str =~ m/(aaa|aab|a)/g;
foreach my $result (@found) {
  print "found $result\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...