这个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模式的方括号周围插入(
和)
)以允许分组。可能是由于缺少分组,匹配没有返回值。