美文网首页正则
正则表达式?= ?! ?<= ?

正则表达式?= ?! ?<= ?

作者: 修行者12138 | 来源:发表于2020-04-11 12:05 被阅读0次

    ?=的语法是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);
        }
    

    输出结果

    美国人中国人英国人-
    

    相关文章

      网友评论

        本文标题:正则表达式?= ?! ?<= ?

        本文链接:https://www.haomeiwen.com/subject/lpevmhtx.html