Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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中一个用例的正则表达式,从DANNO开始,以integer结束_Java_Regex - Fatal编程技术网

java中一个用例的正则表达式,从DANNO开始,以integer结束

java中一个用例的正则表达式,从DANNO开始,以integer结束,java,regex,Java,Regex,我试图创建一个正则表达式来从字符串中获取一个数字。我使用并使用了以下正则表达式(DANNO)[^0-9]*[0-9]*,这在他们的控制台上运行得很好,但当我尝试在java代码中使用时,它只是在某些情况下为我提供了DANNO 以下是一些示例字符串以及预期结果: N. DANNO: 1234567890 => DANNO: 1234567890 DANNO N° 1234567890 => DANNO N° 1234567890 ORDINE N 1234567890 N DANNO

我试图创建一个正则表达式来从字符串中获取一个数字。我使用并使用了以下正则表达式
(DANNO)[^0-9]*[0-9]*
,这在他们的控制台上运行得很好,但当我尝试在java代码中使用时,它只是在某些情况下为我提供了DANNO

以下是一些示例字符串以及预期结果:

N. DANNO: 1234567890 => DANNO: 1234567890
DANNO N° 1234567890 => DANNO N° 1234567890
ORDINE N  1234567890 N  DANNO 1234567890 N  CLIENTE 123456 => DANNO 1234567890
N°DANNO1234567890 => DANNO1234567890
DANNON°1234567890 => DANNON°1234567890

使用:
\bDANNO\D*(\D+)
作为正则表达式并抓取捕获的组#1@anubhava令人惊讶的是,这起作用了。非常感谢你。
public static void main(String[] args) throws ParseException {
    final String regex = "(DANNO)[^0-9]*[0-9]*";
    final String string = "N. DANNO: 1234567890\n"
         + "DANNO N° 1234567890\n"
         + "ORDINE N  1234567890 N  DANNO 1234567890 N  CLIENTE 123456\n"
         + "N°DANNO1234567890\n"
         + "DANNON°1234567890";

    final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
    final Matcher matcher = pattern.matcher(string);

    while (matcher.find()) {
        System.out.println("Full match: " + matcher.group(0)); //Prints full serach result
        for (int i = 1; i <= matcher.groupCount(); i++) {
            System.out.println("Group " + i + ": " + matcher.group(i)); //Prints DANO
        }
    }
}
Full match: DANNO: 1234567890
Group 1: DANNO
Full match: DANNO N° 1234567890
Group 1: DANNO
Full match: DANNO 1234567890
Group 1: DANNO
Full match: DANNO1234567890
Group 1: DANNO
Full match: DANNON°1234567890
Group 1: DANNO