5

http://regexr.com?32uvo

我目前拥有的:

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

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

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

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

4

1 回答 1

2

你很亲近

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

在这里试试

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


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

于 2012-11-27T17:25:54.913 回答