基本的に数字のみを許可し、8文字の長さで、空にすることはできません。つまり、「」または8つの空白を含める正規表現を作成しようとしています
^(?!\s*$).+空の文字列は許可されません が、空白は許可されます。また、^[0-9]+$を使用すると、数字のみを検索できます。
これらの正規表現と句を組み合わせて、8 文字の長さの文字列に一致させたいと思います。
これまでに持っているものをどのように組み合わせることができるかについてのアドバイスはありますか?
^(?!\s*$)
正規表現の先頭に配置するだけです。この方法を試してみ^(?!\s*$)[0-9\s]{8}$
ませんか?
^(?!\s*$)
ご存知のように、文字列全体が空白だけではないかどうかを確認します[0-9\s]
任意の数字と空白に一致します{8}
その前に要素がちょうど8回出現することを意味します(この場合、数字または空白)次のように、パターンが特定の桁数と一致することを保証する量指定子を指定できます^[0-9]{8}$
。
編集:うーん、前に空白についての部分を読み違えました。一致する文字列内またはその周りに空白があっても大丈夫ですか? 前者の場合、回答をやり直す必要があります。後者の場合は、 and を削除し^
ます$
。
編集 v2: Pshemo にはその日があります。
文字列が8文字の長さで、数字のみを含み、空白である方法を実際には理解できませんが、8桁だけを一致させるには、これを試してください:
^\d{8}$
最初に文字列の長さチェックを行い、8 文字目かどうかを確認します ;)
次にトリムして(先頭と末尾のスペースを削除するため)、次のように一致させ\d+(\s+\d+)*
ます。
// No need to anchor the regex since we use .matches()
return input.length() == 8 && input.trim().matches("\\d+(\\s+\\d+)*");
^[\d|\s]{8}$
またはJavaで...
String re = "^[\\d|\\s]{8}$";