Java 如何找到与模式的动态匹配

Java 如何找到与模式的动态匹配,java,android,pattern-matching,Java,Android,Pattern Matching,好的,我一直在寻找答案,但找不到任何答案: 我正在手机上创建一个文件,并希望编写以下内容: 如果有一条具有此模式N:xval,yval的线存在于数字N中,而且没有设置xval和yval,那么我想用N:xval+1,yval+{0或1}替换该线 如果没有这样的行,我想用N:1、{0或1}创建一个新行 问题是:它找不到匹配项 我在这个州: for (int N=0; N<myNumber; N++){ Pattern p = Pattern.compile("(\\d+):(\\d+)

好的,我一直在寻找答案,但找不到任何答案:

我正在手机上创建一个文件,并希望编写以下内容:

如果有一条具有此模式N:xval,yval的线存在于数字N中,而且没有设置xval和yval,那么我想用N:xval+1,yval+{0或1}替换该线 如果没有这样的行,我想用N:1、{0或1}创建一个新行

问题是:它找不到匹配项

我在这个州:

for (int N=0; N<myNumber; N++){
    Pattern p = Pattern.compile("(\\d+):(\\d+),(\\d+)");
    Matcher m = p.matcher(""+myNumber+":(\\d+),(\\d+)");
    m.find();

    int xval, yval, val;
    if (m.matches()) {
        val =Integer.parseInt(m.group(1));
        xval = Integer.parseInt(m.group(2));
        yval = Integer.parseInt(m.group(3));
        ++xval;
        if (myBoolean==true){
            ++yval;
        }
        line = String.format("%d:%d,%d", val ,xval, yval);
        try {
            globalwriter.write(line.getBytes(), m.start(), line.length());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }else{
        int zeroorone;
        if (myBool==true){
            zeroorone=1;
        }else{
            zeroorone=0;
        }
        line = String.format("%d:%d,%d \n ", myNumber ,1, zeroorone);
        try {
            int end;
            if (checker.length() == 0){
                end = 0;
            }else{
                end = (int)checker.length() -1;
            }
            globalwriter.write(line.getBytes(),(int) end,line.length());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

感谢回复。matcher需要是您试图匹配的字符串,而不是正则表达式

尝试将正则表达式移动到模式:

Pattern p = Pattern.compile(""+myNumber+":(\\d+),(\\d+)");
Matcher m = p.matcher(inputString);

edit:inputString应为N:xval,yval格式

,但当我不知道xval和yval是什么时,如何填充inputString。同样,对于//d+?@jacobusConradi,您说过要检查一行模式,该行应该是inputString。