How do I express “:” but not preceded by “\” in a Java regular expression?

后端 未结 2 2019
情深已故
情深已故 2021-01-05 05:17

How can I express \"not preceded by\" in a Java regular expression? For example I would like to search for \":\" but only when it is not directly preceded by \"\\\". How c

2条回答
  •  时光取名叫无心
    2021-01-05 06:10

    Did you try using a character class with the complement operator?

        String s1 = "foo : bar";
        String s2 = "foo \\: bar";
    
        Pattern p  = Pattern.compile("[^\\\\]:");
    
        Matcher m = p.matcher(s1);
        if(m.find()) {
            System.out.println(m.group());
        }
    
        m = p.matcher(s2);
        if(m.find()) {
            System.out.println(m.group());
        }
    

提交回复
热议问题