zoukankan      html  css  js  c++  java
  • 【Java/Regexp】让正则表达式去看目标字符串里是否有不允许出现的字符串

    正则表达式常用来制作模式,然后看字符串是否符合这个模式,殊不知正则也可以进行不该出现的字符串的匹配,请看程序:

    package test;
    
    public class RegNotIn {
        public static void main(String[] args) {
            String[] arr= {"刘备宋江","宋江ZGL李逵",
                           "张飞李逵","吴用宋江",
                           "张飞李逵","zGl林冲宋江",
                           "张飞李逵","吴用宋江杨志"};
            
            for(String text:arr) {
                if(nofoundBanName(text)) {
                    System.out.println(text);
                }
            }
        }
        
        private static boolean nofoundBanName(String text) {
            return text.matches("^(?i)(((?!(刘备|关羽|张飞|zgl)).)+)$");
        }
    }

    输出:

    吴用宋江
    吴用宋江杨志

    正则式分析:

    ^...$ :这个是目标字符串从头找到尾,毋庸多言。

    (?i)   :这个是不区分大小写

    (?!(刘备|关羽|张飞|zgl)). :点号匹配任意字符,?!是朝前看不允许有,(刘备|关羽|张飞|zgl) 是刘备、关羽、张飞、zgl里四选一,组合起来就是,任意字符前不允许有刘备、关羽、张飞、zgl中的一个

    ((?!(刘备|关羽|张飞|zgl)).)+ :表示 “任意字符前不允许有刘备、关羽、张飞、zgl中的一个 ”这个模式可以重复一到多次。

    END

  • 相关阅读:
    百度地图常用 获取中心点 缩放级别等
    sqlserver 临时表,多用户同时访问冲突吗?
    批量改ID 行形式
    C# post Json数据
    windows 激活venv问题
    spring 改变url
    conductor编译镜像
    springboot教程
    Microsoft Visual C++ Compiler for Python 2.7
    java 方法引用(method reference)
  • 原文地址:https://www.cnblogs.com/heyang78/p/15720928.html
Copyright © 2011-2022 走看看