正则表达式:有没有办法设置模式的最大大小?

ste*_*o m 7 regex

例如,如果我有字符串:
0123456789

我会写这样的表达式:
0.*9 WHERE PATTERN MAX SIZE is 3. in this case, pattern should fail.

Mar*_*ers 8

您的示例的具体解决方案是:

/^0.?9$/
Run Code Online (Sandbox Code Playgroud)

您的抽象问题的一般解决方案是:

/^(?=.{0,3}$)0.*9$/
Run Code Online (Sandbox Code Playgroud)

上面(?=.{0,3}$)是字符串其余部分长度在 0 到 3 之间的前瞻。


Ali*_*aru 6

x{min,max}将在最短和最大次数之间匹配 x
x{min,}将至少匹配 x 最短次数
x{,max}将匹配 x 最多最大次数
x{n}将匹配 x 精确 n 次

所有范围均包含在内。

快捷键:{0,1}=> ?{0,}=> *{1,}=> +

我不确定这是否正是您所需要的,但它应该可以帮助您构建正则表达式。

示例:^0\d{,3}9$将匹配最多 5 个以 0 开头、以 9 结尾的数字的字符串。匹配:0339, 06319, 09。不匹配:0334291449