如何用 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP