到目前为止,我正在使用下面找到的方法来测试针对语句的模式,但我想知道应该如何处理/尝试匹配多个模式与单个语句。
我应该将模式存储在数组中并将它们与语句进行匹配,还是有更有效(也许不太复杂)的方法?
public class StringConvenience {
public static void main(String[] argv) {
String pattern = ".*Q[^u]\\d+\\..*";
String line = "Order QT300. Now!";
if (line.matches(pattern)) {
System.out.println(line + " matches \"" + pattern + "\"");
} else {
System.out.println("NO MATCH");
}
}
}
最佳答案
这并不难。只需使用数组和 for 循环即可。它有效且简单。
String line = "Order QT300. Now!";
String[] pattern = new String[3];
pattern[0] = ".*Q[^u]\\d+\\..*";
pattern[1] = ".*?";
pattern[2] = "ABC";
for (String pat : pattern) {
if (line.matches(pat)) {
System.out.println(line + " matches \"" + pat + "\"");
} else {
System.out.println("NO MATCH");
}
}
关于java - Java 中的多重模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35701456/