入力に対して複数の正規表現パターンをチェックする方法は? Javaを使用します。
「|」メタ文字: メタ文字「|」 Javaの正規表現では、複数の正規表現を照合できます。たとえば、特定の入力テキストを複数の式と照合する必要がある場合は、次のように使用してそれらを区切る必要があります。
exp1|exp2|exp3
例
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SampleExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your input: ");
String input = sc.nextLine();
//Regular expression
String regex = "\\d{10}|^[aeiou]";
//Creating a pattern object
Pattern pattern = Pattern.compile(regex);
//Creating a Matcher object
Matcher matcher = pattern.matcher(input);
if(matcher.find()) {
System.out.println(input+" is valid");
}else {
System.out.println(input+" is not valid");
}
}
} 出力1
Enter your input: 9848033228 9848033228 is valid
出力2
Enter your input: an apple a day keeps doctor away an apple a day keeps doctor away is valid
リストオブジェクトの使用
別の解決策は、個々のパターンオブジェクトを使用してすべての正規表現をコンパイルし、それらをリストオブジェクトに追加して、入力テキストで-
として一致するものを見つけることです。List list = new ArrayList<>();
list.add(Pattern.compile(regex1));
list.add(Pattern.compile(regex2));
for (Pattern pattern: list) {
Matcher matcher = pattern.matcher(input);
if(matcher.find()) {
. . . . . . . . . . . . . . .
}else {
. . . . . . . . . . . . . . .
}
} 例
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MultipleRegex {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your input: ");
String input = sc.nextLine();
//Regular expressions
String regex1 = "\\d{10}";
String regex2 = "^[aeiou]";
//Creating a pattern objects
Pattern pattern1 = Pattern.compile(regex1);
Pattern pattern2 = Pattern.compile(regex2);
//Creating an List object
List<Pattern> patterns = new ArrayList<>();
patterns.add(pattern1);
patterns.add(pattern2);
for (Pattern pattern: patterns) {
Matcher matcher = pattern.matcher(input);
if(matcher.find()) {
System.out.println("For regex "+pattern.pattern()+" "+input+" is valid");
} else {
System.out.println("For regex "+pattern.pattern()+" "+input+" is not valid");
}
}
}
} 出力1
Enter your input:
9848033228
For regex \d{10} 9848033228 is valid
For regex ^[aeiou] 9848033228 is not valid 出力2
Enter your input:
an apple a day keeps doctor away
For regex \d{10} an apple a day keeps doctor away is not valid
For regex ^[aeiou] an apple a day keeps doctor away is valid -
Javaで正規表現を使用してMM-DD-YYYYのような特定の日付形式を検証するにはどうすればよいですか?
javaのjava.util.regexパッケージは、文字シーケンスの特定のパターンを見つけるためのさまざまなクラスを提供します。 パターン このパッケージのクラスは、正規表現のコンパイル済み表現です。正規表現を文字列と照合するために、このクラスは2つのメソッド、つまり-を提供します。 compile() −このメソッドは、正規表現を表す文字列を受け入れ、Patternオブジェクトのオブジェクトを返します。 matcher() −このメソッドは文字列値を受け入れ、指定された文字列を現在のパターンオブジェクトによって表されるパターンに一致させるマッチャーオブジェクトを作成します
-
Javaで正規表現を使用して文字列からHTMLタグを抽出するにはどうすればよいですか?
javaのjava.util.regexパッケージは、文字シーケンスの特定のパターンを見つけるためのさまざまなクラスを提供します。 パターン このパッケージのクラスは、正規表現のコンパイル済み表現です。正規表現を文字列と照合するために、このクラスは2つのメソッド、つまり-を提供します。 compile() −このメソッドは、正規表現を表す文字列を受け入れ、Patternクラスのオブジェクトを返します。 matcher() −このメソッドは文字列値を受け入れ、指定された文字列を現在のパターンオブジェクトによって表されるパターンに一致させるマッチャーオブジェクトを作成します。