指定回繰り返しに一致


 中括弧({})で繰り返しの回数を指定できます。
 {m,n}でm回以上n回以下の繰り返しになります。nを省略した場合、{m}でm回の繰り返し、{m,}でm回以上の繰り返しになります。
 *は{0,}、+は{1,}、?は{0,1}と同じです。
my @data = qw(
	abc
	aabbcc
	aaabbbccc
	aaaabbbbcccc
);

foreach my $item (@data) {
	print $item, "\n";
	if ($item =~ m/(a{1,2})/) {
		# aが1〜2個
		print "\ta{1,2} / $1\n";
	}
	if ($item =~ m/(a{2})/) {
		# aが2個
		print "\ta{2} / $1\n";
	}
	if ($item =~ m/(a{3,})/) {
		# aが3個以上
		print "\ta{3,} / $1\n";
	}
	if ($item =~ m/(a{2,3}b{2,3}c{2,3})/) {
		# aが2〜3個、bが2〜3個、cが2〜3個並んでいる
		print "\ta{2,3}b{2,3}c{2,3} / $1\n";
	}
}

関連項目

最短一致