1. ホーム
  2. java

[解決済み] Java - 文字列が文字と数字の両方を含んでいるかどうかをテストする方法

2022-02-15 21:48:23

質問

両方の条件を満たす正規表現が必要です。

文字列がA-Zと0-9の両方を含むときのみtrueを返すようにする。

試してみたのは以下の通りです。

if PNo[0].matches("^[A-Z0-9]+$")

動作しない。

解決方法は?

下の正規表現は、ルックアラウンドによって速度が低下していると思われますが、関係なく動作するはずです。

.matches("^(?=.*[A-Z])(?=.*[0-9])[A-Z0-9]+$")

この正規表現は、大文字のアルファベット文字があることを主張します。 (?=.*[A-Z]) 文字列のどこかに、数字 (?=.*[0-9]) 文字列のどこかで、すべてがアルファベットか数字かをチェックします。