如何在Java中实现Regex

时间:2018-02-08 17:54:55

标签: java regex

我对我必须在Java中解决的问题表示怀疑。问题是:我的程序通过控制台接收两个参数,第一个是文件的路径,我必须将此文件加载到java程序,它是一个.ini文件。第二个参数是一个代码,使用这种模式:XXX-XXXX或XXX-XXXX-XXXX其中'X'是0到9之间的数字。在第二个参数中,我的问题出现了:我必须使用数据包java.util .regex实现这种模式,我的意思是,我必须验证用户是否正确输入了参数。我怎样才能做到这一点? 我的代码中实现此功能的部分如下:提前感谢:

Pattern patron = Pattern.compile("^[0-9]{3,}"); //aqui va la regex que queremos poner
    Matcher match = patron1.matcher(args[1]);


    if(args.length < 2){ // el programa espera recibir dos argumentos

        System.out.println("ERROR, número de argumentos inválido!");
        System.exit(1); //termina el programa
    } else if(args[0].endsWith("config.ini") == false){ //COMPLETAR la segunda condicion
        System.out.println("ERROR, los argumentos no toman valores válidos");
        System.exit(1);
    }

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

if(args.length >= 2 && args[1] != null && args[1].matches("^\\d{3,}(\\-\\d{3,}){1,2}$"))

^代表字符串的开头

\\d{3,}一个重复3次或更多次的数字

(\\-\\d{3,})由破折号组成的组和上面解释的构造

{1,2}表示该组重复一到两次

$字符串的结尾