複数のパターンに一致するPerlで正規表現を考え出しpreg_match_all
、PHPのようにそれらすべてを返すようにしています。
ここに私が持っているものがあります:
$str = 'testdatastring';
if($str =~ /(test|data|string)/) {
print "its found index location: $0 $-[0]-$+[0]\n";
print "its found index location: $1 $-[1]-$+[1]\n";
print "its found index location: $2 $-[2]-$+[2]\n";
print "its found index location: $3 $-[3]-$+[3]\n";
}
これは、「テスト」である最初の一致のみを提供します。指定されたパターン「test」、「data」、および「string」のすべての出現に一致できるようにしたいと考えています。
PHP では、この種の目的で preg_match_all を使用できることを知っています。
if(preg_match_all('/(test|data|string)/', 'testdatastring', $m)) {
echo var_export($m, true);
}
上記の PHP コードは、'test'、'data'、'string' の 3 つの文字列すべてに一致します。
Perlでこれを行う方法を知りたいです。どんな助けでも大歓迎です。