这个正则表达式模式描述了什么:".{5,} +"

Gin*_*nza 2 regex

我正在处理的应用程序中的一个HTML输入字段正在使用以下正则表达式模式进行验证:

.{5,}+
Run Code Online (Sandbox Code Playgroud)

这检查是什么?

正在使用这种模式检查其他字段,我也不明白:

.+
Run Code Online (Sandbox Code Playgroud)

Dan*_*uis 18

我们可以将您的模式分解为三个部分:

是一个通配符,它匹配任何字符(除换行符,默认情况下,除非/s 修改设置).

{5,}is指定点上的重复.它表示点必须至少匹配5次.如果逗号后面有一个数字,那么点必须在5和那个次数之间匹配,但由于没有数字,它可以匹配无限次.

在你的第一个模式中,它+是一个占有量词(见下文,了解+在不同情况下如何表示不同的事物).它告诉正则表达式引擎一旦满足前一个条件(即.{5,}),它就不应该尝试回溯.


你的第二种模式更简单.点仍然意味着与上面相同(作为通配符).然而,这里+具有不同的含义,并且是重复操作符,意味着点必须匹配1次或更多次(也可以表示为.{1,},如上所述).

如您所见,+取决于上下文,具有不同的含义.当单独使用时,它是一个重复运算符.然而,当它遵循一个不同的重复操作符(或者*,?,+{...}),那么变为所有格量词.