「Java」任意の文字のみにマッチする正規表現
Java の Pattern API を使って任意の文字のみにマッチする正規表現を使ったサンプルです。
■ AnyCharMatch.java
package test.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class AnyCharMatch { private static final Pattern pattern = Pattern.compile("^[aA0-9_\\.@]+$"); public static boolean test(String input) { Matcher m = pattern.matcher(input); return m.find(); } public static void main(String[] args) { System.out.println("1:" + test("aA_.@0123456789")); System.out.println("2:" + test("01234aA")); System.out.println("3:" + test("aA")); System.out.println("4:" + test("_.@")); System.out.println("5:" + test("01234")); System.out.println("6:" + test("BaA_.@")); System.out.println("7:" + test("aA_B.@")); System.out.println("8:" + test("aA_.@B")); System.out.println("9:" + test("BaA_.@B")); } }
■ 実行結果
1:true 2:true 3:true 4:true 5:true 6:false 7:false 8:false 9:false
上記のサンプルは a、A、数字、_、. ( 特に \ でエスケープしなくても動作するっぽいですがサンプルでは念のためエスケープしてます )、@ からなる文字列のみマッチする感じになります。^ が行の先頭、$ が行の末尾、+ がひとつ前を 1 回以上なので "^[aA0-9_\\.@]+$" と書くと [aA0-9_\\.@] で始まってそれが一回以上続いてそれで終わる、という意味になります。
・Pattern (Java Platform SE 8 )
https://docs.oracle.com/javase/jp/8/docs/api/java/util/regex/Pattern.html
簡単ですが以上になります。