Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在find()之后识别模式名?_Java_Regex - Fatal编程技术网

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获得匹配的模式正则表达式。