findメソッドを使用して、指定された文字列に正規表現と一致する部分が存在するかどうかの検証( バリデーション )を行う方法を解説します。
構文
matcher.find()
インスタンス – matcher: 指定された文字列と正規表現を照合するMatcherオブジェクト
戻り値 – 真偽値( true / false )
サンプルプログラム
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
String regex = "[a-zA-Z]+"; // 1文字以上の半角英字
Pattern ptn = Pattern.compile(regex); // 正規表現をコンパイルしPatternオブジェクトを生成
String str = "abcde";
Matcher mtc = ptn.matcher(str); // 指定された文字列と正規表現を照合するMatcherオブジェクトを生成
if(mtc.find()) { // true
System.out.println(str + "は半角英字を含みます。");
} else {
System.out.println(str + "は半角英字を含みません。");
}
str = "abcde12345";
mtc = ptn.matcher(str);
if(mtc.find()) { // true
System.out.println(str + "は半角英字を含みます。");
} else {
System.out.println(str + "は半角英字を含みません。");
}
}
}
■出力結果
abcdeは半角英字を含みます。
abcde12345は半角英字を含みます。
補足情報
findメソッドでは、正規表現と指定された文字列が部分一致する場合にtrueを返します。全体一致するかどうかを検証したい場合は、matchesメソッドを使用しましょう。
コメント