我想在一个字符串中搜索一个特定的模式,但具有特定的长度(最大长度为20)。 例如:
的字符串:
hellokkkkkkkkkkhellokhellokkhellokkkkk
正则表达式:
/(hello.*?hello.*?hello)/
但它给了我以下的模式
loc:0到26
hellokkkkkkkkkkhellokhello
但我想要的只是第二种模式(意为hellokhellokkhello
),其长度为< 20 ..
有什么建议吗?
答案 0 :(得分:4)
要获得重叠匹配,请使用look-ahead。
my $string = 'hellokkkkkkkkkkhellokhellokkhellokkkkk';
say for
grep { length($_) < 20 }
$string =~ /(?=(hello.*?hello.*?hello))/g;