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

私の知る限り、{9,10}長さの間隔である必要があります。

4

1 に答える 1

2

あなたは近かった

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

ここで試してみてください

したがって、この正規表現は、1 ~ 2 桁を含む 9 ~ 10 文字 [大文字と数字] を含む単語に一致します。


文字列全体に一致させたい場合は、(^文字列の開始) と$(文字列の終了 ) を使用することをお勧めします

于 2012-11-27T17:25:54.913 に答える