正则

正则表达式?= ?! ?<= ?
2020-04-11  本文已影响0人  修行者12138

?=的语法是A(?=B),意思是B之前的A
如下面代码所示,匹配到了英国人之前的中国人。

    @Test
    public void test3(){
        String str = "中国人美国人中国人英国人";
        // 英国人之前的中国人
        String regEx = "中国人(?=英国人)";
        str = str.replaceAll(regEx, "-");
        System.out.println(str);
    }

输出结果

中国人美国人-英国人

?!的语法是A(?!B),意思是非B之前的A
如下面代码所示,匹配到了美国人之前的中国人

    @Test
    public void test3(){
        String str = "中国人美国人中国人英国人";
        // 英国人之前的中国人
        String regEx = "中国人(?!英国人)";
        str = str.replaceAll(regEx, "-");
        System.out.println(str);
    }

输出结果

-美国人中国人英国人

?<=的语法是(?<=A)B,意思是A之后的B
如下面代码所示,匹配到了美国人之后的中国人

    @Test
    public void test3(){
        String str = "美国人中国人英国人中国人";
        // 英国人之前的中国人
        String regEx = "(?<=美国人)中国人";
        str = str.replaceAll(regEx, "-");
        System.out.println(str);
    }

输出结果

美国人-英国人中国人

?<!的语法是(?<!A)B,意思是非A之后的B
如下代码所示,匹配到了英国人之后的美国人

    @Test
    public void test3(){
        String str = "美国人中国人英国人中国人";
        // 英国人之前的中国人
        String regEx = "(?<!美国人)中国人";
        str = str.replaceAll(regEx, "-");
        System.out.println(str);
    }

输出结果

美国人中国人英国人-

上一篇下一篇

猜你喜欢

热点阅读