这个regex/{2,}/是什么意思?

这个regex/{2,}/是什么意思?,regex,Regex,即使在搜索了正则表达式的示例之后,我也无法理解这一点。 有人能告诉我这个表达是什么意思吗 /.{2,}/ 感谢您的帮助匹配除换行符以外的任何字符。引用 (小数点)匹配除换行符以外的任何单个字符 {2,}表示两次或两次以上 因此,整个表达式的意思是,“匹配长度大于或等于2的任何字符集”贪婪地匹配两个或多个不是行分隔符的字符,但是… 这取决于您的引擎: 在PCRE、C#、Python、Ruby中,匹配任何不是\n的字符。。。小心,因为这包括回车\r 在JavaScript和Java中,匹配任何

即使在搜索了正则表达式的示例之后,我也无法理解这一点。 有人能告诉我这个表达是什么意思吗

 /.{2,}/

感谢您的帮助

匹配除换行符以外的任何字符。引用

(小数点)匹配除换行符以外的任何单个字符

{2,}
表示两次或两次以上


因此,整个表达式的意思是,“匹配长度大于或等于2的任何字符集”

贪婪地匹配两个或多个不是行分隔符的字符,但是…

这取决于您的引擎:

  • 在PCRE、C#、Python、Ruby中,
    匹配任何不是
    \n
    的字符。。。小心,因为这包括回车
    \r
  • 在JavaScript和Java中,
    匹配任何非换行字符的字符(
    \n
    \r
    ,段落分隔符)
{2,}
是贪婪的(它会尽可能多地消耗字符)

请注意,
{2,}
量词是“贪婪的”:
{2,}
将匹配尽可能多的字符,并且仅在必要时“返回字符”(回溯),例如允许下一个标记(如果有)匹配

DOTALL
模式

dotall
模式下(在不同的引擎中打开不同的模式),
也将匹配行分隔符

  • 在大多数发动机中,此模式由
    s
    标志激活
  • 在Ruby中,它由
    m
    标志激活
{,}
是一个重复量词。它用于指定成功匹配时任何标记可以重复的次数。

引用自限制重复的
:()

语法为
{min,max}
,其中min为零或表示最小匹配数的正整数,max为等于或大于min的整数,表示最大匹配数如果存在逗号,但省略了max,则最大匹配数为无限
因此,
{2,}
将意味着前面字符的2或更多

表示任何字符(除了
行分隔符
),而
前斜杠
表示正则表达式的开始和结束


更新:

到目前为止,我已经为允许的字符设置了这个正则表达式/^[a-zA-Z0-9',\s\-&()]*$/我需要在字段中保留/{2,}/吗?

{a,b}
指定匹配字符串的最小(通过a)和最大(通过b)限制。因此,如果您需要为
字母、数字、逗号和句点指定最小和/或最大限制
,您可以将这些字符的正则表达式括在组中(例如
[]
),并将
{a,b}
放在该组后面,如下:
/^[a-z]{2200$/
。这将匹配2到200个小写字母的字符串。

至于您的
字母、数字、逗号和句点
,在regex
/^[a-zA-Z0-9.”、\s \-&()]*$/
中,您需要转义
并用
{2,max limit}
替换
*
,如下所示:
/^[a-zA-Z0-9'\,\s\-&()]{2,20}$/


-->

这是一个了解正则表达式含义的绝佳网站:感谢您的回复。基本上,我试图阻止客户在我的客户评论表单中注入恶意代码。现有程序在Regex字段中只有/{2,}/。我想创建一个只允许字母、数字、逗号和句点的正则表达式。我还想限制评论区的字数。到目前为止,我有一个允许字符的正则表达式/^[a-zA-Z0-9',\s\-&()]*$/我需要在字段中保留/{2,}/吗?请帮我把“允许的字符和限制的字数放在一起”或建议更好的。我感谢你的帮助!您的正则表达式有一个
*
量词,因此它将允许一个空字符串。如果您想要2个或更多,或介于5和10之间,请使用
{3,}
{5,10}
@alanmore感谢您在文本中插入缺少的
而不是
。)我尝试了你给我的代码/^[a-zA-Z0-9'\,\s\-&(){2,20}$/但它没有限制字数。它的其他部分可以过滤不需要的字符。我感谢你迄今为止的帮助!!请参见答案中的
DEMO
链接。在该页面中,尝试输入超过20个字符,结果(在页面右下方)将不匹配任何内容。因此,可以使用空匹配作为输入文本的检查。在2和20之间(包括2和20),匹配将返回一个字符。可能,(在regex模式的方括号周围插入
)以允许分组。可能是由于缺少分组,匹配没有返回值。