字数在9-10个字符之间,其中0-2是数字

Joh*_*han 5 regex

http://regexr.com?32uvo

我目前拥有的:

\b(?=[A-Z\d]{10})(?:[A-Z]*\d){0,2}[A-Z]*\b
Run Code Online (Sandbox Code Playgroud)

这只会匹配长度为10的字符串.我想将其更改为9到10个字符,其中2可以是数字.为什么这不起作用?

\b(?=[A-Z\d]{9,10})(?:[A-Z]*\d){0,2}[A-Z]*\b
Run Code Online (Sandbox Code Playgroud)

AFAIK,{9,10}应该是长度间隔.

Ani*_*dha 2

你很接近

 \b(?=[A-Z\d]{9,10}\b)(?:[A-Z]*\d){0,2}[A-Z]*\b
                   --            
                    |->you missed this     
Run Code Online (Sandbox Code Playgroud)

在这里试试

所以这个正则表达式将匹配包含 9 到 10 个字符[大写和数字]的单词,其中包含 1 到 2 个数字


如果你想匹配整个字符串,你最好使用^(字符串的开头)和$(字符串的结尾)