zoukankan      html  css  js  c++  java
  • 正则RegExp

    正则是所有的编程语言里统一的语法,尽管执行方法不同,但是正则的写法是一样的,目的是为了处理字符串数据,处理的方式有剪切,验证格式,正则表达式写在两条正斜杠里【/】

    // 基础
    var reg = /123abc/
    
    // 匹配开始【^】
    // 必须是123开头的
    var reg = /^123/  //123,123333,123....
    
    // 匹配结束【$】
    // 必须是123结束的
    var reg = /123$/  //123,123123,...123
    
    // 匹配【^】和【$】
    var reg = /^123$/  //123,其他都不行
    
    // 对比上面
    var reg = /123/  //123,4412344,连在一起有出现就行
    
    // 数量【{}】,连续的出现几次,参数可以是一个到两个
    // 当参数是一个时表示必须是连续的重复出现这么多次
    // 当参数是两个时,第一个参数是至少出现几次,第二个是最多出现几次,第二个参数不填{1,} 表示无限次
    var reg = /4{2}/  //124433,44
    var reg = /4{2,3}/ //12445,444123
    
    // 数量的代表符号
    【*】表示零次或者无限次,{0,}的意思 
    【+】表示一次或者无限次,{1,}的意思 
    【?】表示零次或者一次,{0,1}的意思 
    
    // 括号【()】表示一起
    var  reg = /14{2}/  //144
    var  reg = /(14){2}/  //1414
    
    // 集合【[]】表示所包含的任意一个字符
    var  reg = /[0123]/
    var  reg = /[pdt]{5}/  // 15ptdp66 区间内任意的字符出现5次,不需要顺序 
    
    // 区间集合【[x-y]】,集合的一种简易写法
    var  reg = /[0-9]/  // 表示0到9的所有数字
    var  reg = /[a-z]/
    var  reg = /[A-Z]/
    
    // 集合的反向【[^123]】
    var reg = /[^123]/ //除了123外的所有
    var reg = /[^0-9]/ // 除了0123456789之外的
    
    // 点【.】
    // 匹配除了 /n 外的任何单个字符 
    var reg = /^1.3$/  // 123,143,1a3
    
    // 转义【加符号】
    var reg = /./ // 被转义的点就是点的意思了,不是上面的点的意思了
    var reg = /\,[,],$,^/  //在正则里有含义的符号想要去除含义都需要转义,逗号在正则里没意义所以不需要转义
    
    // 转义【加字母】
    var reg = /d/  // 就是[0-9]的简写
    var reg = /D/  // 就是[^0-9]的简写
    var reg = /f/  // 换页符
    var reg = /
    /  // 换行符
    var reg = /
    /  // 回车符
    var reg = /s/  // 匹配一个空白字符,包括空格,换行换页回车
    var reg = /S/  // 非空白字符
    var reg = /w/  // 就是[A-Za-z0-9]的简写
    var reg = /W/  // 就是[^A-Za-z0-9]的简写
    
    // 或者【x|y】
    // 如果竖杠,竖杠两端的内容如果很长需要用括号包起来表示一个整体
    var reg = /1|2/
    var reg = /(^[1-3]$)|(^[6-9]$)/
    

    常用正则

    // 手机
    var phone = /^[1]{1}[0-9]{10}/
    
    // 身份证
    var idCard = /^[1-9]d{5}(18|19|([23]d))d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx]$/,
                
    // 过滤表情符号
    var emojoReg = /(?:[u2700-u27bf]|(?:ud83c[udde6-uddff]){2}|[ud800-udbff][udc00-udfff]|[u0023-u0039]ufe0f?u20e3|u3299|u3297|u303d|u3030|u24c2|ud83c[udd70-udd71]|ud83c[udd7e-udd7f]|ud83cudd8e|ud83c[udd91-udd9a]|ud83c[udde6-uddff]|ud83c[ude01-ude02]|ud83cude1a|ud83cude2f|ud83c[ude32-ude3a]|ud83c[ude50-ude51]|u203c|u2049|[u25aa-u25ab]|u25b6|u25c0|[u25fb-u25fe]|u00a9|u00ae|u2122|u2139|ud83cudc04|[u2600-u26FF]|u2b05|u2b06|u2b07|u2b1b|u2b1c|u2b50|u2b55|u231a|u231b|u2328|u23cf|[u23e9-u23f3]|[u23f8-u23fa]|ud83cudccf|u2934|u2935|[u2190-u21ff])/
    

    js的正则方法

    var reg = /d+/
    var str = "aaa111bbb222bbb"
    reg.text(str)  //最常用
    str.replace(reg,newStr)  //返回一个新的字符串
    str.match(reg)   // 返回一个数组,数组装着符合正则条件的字符串
    str.split(reg)  //  返回一个数组,数组装着没被正则匹配的被切割的字符串
    

    上面的replace,match正则如果使用普通的正则只会匹配第一个符合的条件然后返回,如果想让全字符串匹配,可以使用for循环进行递归或者在正则最后的【/】后面加上字母【g】,这个【g】只有js能用

    var reg = /d+/g
    var str = "aaa111bbb222bbb"
    str.replace(reg,newStr) //可以对比上面的代码的输出
    str.match(reg)  //可以对比上面的代码的输出
    

    java的正则方法

  • 相关阅读:
    C++成员变量与函数内存分配
    Sqlite ContentProvider Loader 上下文 对话框
    好书好人生--读书的步骤
    小智慧40
    流媒体开发之-直播界面切换电视台频道
    HDU 4617Weapon(两条异面直线的距离)
    BON取代半岛电视,美国人要“换口味”了吗?
    【Todo】Lucene系统学习
    Zookeeper学习 & Paxos
    C++中的虚继承 & 重载隐藏覆盖的讨论
  • 原文地址:https://www.cnblogs.com/pengdt/p/12037966.html
Copyright © 2011-2022 走看看