Java 如何在find()之后识别模式名?
如何根据以下代码确定模式名称:Java 如何在find()之后识别模式名?,java,regex,Java,Regex,如何根据以下代码确定模式名称: Matcher m; if( ((m = PATTERN_1.matcher(text)).find()) || ((m = PATTERN_2.matcher(text)).find()) ) { System.out.println("Pattern: " + m.patternName?); // how can I determine the matched pattern? //
Matcher m;
if( ((m = PATTERN_1.matcher(text)).find()) ||
((m = PATTERN_2.matcher(text)).find()) )
{
System.out.println("Pattern: " + m.patternName?); // how can I determine the matched pattern?
// i.e - "Pattern: PATTERN_1"
}
我相信这对你有用
考虑以下代码:
Matcher m;
Pattern PATTERN_1=Pattern.compile("\\d+");
Pattern PATTERN_2=Pattern.compile("[a-z]+");
String text="abc";
if( ((m = PATTERN_1.matcher(text)).find()) ||
((m = PATTERN_2.matcher(text)).find()) ) {
System.out.println("PATTERN: " + m.pattern());
}
// prints: PATTERN: [a-z]+
我不知道有什么可行的办法。你只需要把它们套起来。它必须是一个配对器吗?例如,可以使用
m
&m2
。或者……但是我只想要模式变量名(即模式1或模式2)的“名称”。感谢您的回复,我如何获得模式的名称(即模式1或模式2)模式1
或模式2
不是字符串,它们是变量。您可以从上面的API获得匹配的模式正则表达式。