java中字符串处理问题

在一个txt文件中,有几行字符串,每行的格式如下,
abc1110011110102
abc123001111010a
根据条件做字符串的转换,条件:
1.字符串以abc开头
2.字符串中包含字串001111
3.在字串001111之后的第二个非0字符串如果是数字的话改变成0,如果不是数字不改变
因此,上面给出的两个字符串结果为
abc1110011110100
abc123001111010a

 public static void main(String[] args) {
        String s = "abc1110011110102";
        String s1 = "abc123001111010a";

        Pattern p = Pattern.compile("(abc\\d+001111.*?[^0]{1}.*?)([^0]{1})(.*?)");
        Matcher m = p.matcher(s1);
        if (m.find() && m.group(2).matches("\\d")) {
            System.out.println(m.group(1) + "0" + m.group(3));
        }

    }