Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Perl:正则表达式的最大值?_Regex_Perl_Expression_Max_Minimum - Fatal编程技术网

Regex Perl:正则表达式的最大值?

Regex Perl:正则表达式的最大值?,regex,perl,expression,max,minimum,Regex,Perl,Expression,Max,Minimum,这是我的密码 #!/usr/bin/perl $str = 'yaeeeeeeeeeeeeeeeeeeeeah'; $six = 6; $eight = 8; if( $str =~ /e{$six,$eight}?/) { print "matches"; } 由于某些原因,即使e的数量超过最大值8,这仍然匹配。如果有超过8个e,如何使用regex return设置为false?通常是它的/( 检查 对于非常糟糕的情况,在同一个字符串中,6-8个e存在于某个地方,但在某个地方 另外,如

这是我的密码

#!/usr/bin/perl

$str = 'yaeeeeeeeeeeeeeeeeeeeeah';
$six = 6;
$eight = 8;

if( $str =~ /e{$six,$eight}?/)
{
 print "matches";
}
由于某些原因,即使e的数量超过最大值8,这仍然匹配。如果有超过8个e,如何使用regex return设置为false?

通常是它的
/(

检查

对于非常糟糕的情况,在同一个字符串中,6-8个e存在于某个地方,但在某个地方
另外,如果存在20个e,那么发布的解决方案将不会有帮助

示例:
rrrrrrrreeeeeeeee rrrrrrrrrreeeeeeeeeee

在这种情况下,您必须首先展望坏的情况
e{9}

然后是好的例子
e{6,8}

/^(?!.*e{$nine}).*(?<!e)e{$six,$eight}(?!e)/

/^(?。*e{$nine})。*(?您的字符串与表达式匹配,因为它包含六个e。如果不想匹配,请更改表达式。例如,您可以说,e的序列前面没有另一个e,后面没有另一个e:

/(?<!e) e{$six,$eight} (?!e)/x
/(?
这些被称为“消极的向后看”和“向前看”断言


在这种情况下,量词后面的问号没有区别。

打赌它没有区别。尝试
打印“$&”\n”
应该打印6个e。