文字列は文字で始まり、その後に数字が続きます (文字と数字の両方を空にすることができます) が、合計の長さは 8 を超えてはなりません。
私の解決策は
([a-zA-Z]*[0-9]*){0,8}
全長8は無理みたいなのでどうしよう
正規表現で文字列の長さを確認するには、先読みメカニズムを使用して、正規表現の先頭に追加(?=^.{0,8}$)
します。^
アンカーはデータの始まりを$
表し、終わりを表します。
しかし、あなたの場合、私はおそらく次のようなものを使用します
someString.matches("^(|[a-zA-Z]\\d{0,7})$")
それは受け入れます