zoukankan      html  css  js  c++  java
  • 正则表达式整理

    随着正则用的越来越普遍,今天正好有时间整理一下

    https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin

    基础概念上面文章中有

    正则表达式(Regular Expression)是一种文本模式,包括普通字符和特殊字符(元字符)

    正则表达式常见的方法

    test()方法:用于检测一个字符串是否匹配某个模式。语法:regexp.test(str);

    test()方法检查是否与给出的表达式模式相匹配,如果是则返回true,否则返回false

    举个简单的实例

    var str="abc123def";   //字符串
    var patt=/d{3}/;  //正则表达式(包含3个数字)
    document.write(patt.test(str));  //true
    

    match()方法:可在字符串内找到一个或多个指定正则表达式匹配的子字符串。方法返回值存放在匹配结果的数组中

    var str="abc123def";
    var patt=/d{3}/;
    document.write(str.match(patt)); //123   返回值
    

    exec()方法:和match()非常相似,区别它是唯一一种获得全局模式的完整模式匹配信息的方法。

    exec方法每次只匹配一个;在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置.

    var str = "Visit W3School, W3School is a place to study web technology."; 
    var patt = new RegExp("W3School","g");
    var result;
    
    while ((result = patt.exec(str)) != null)  {
      document.write(result);
      document.write("<br />");
      document.write(patt.lastIndex);
    }
    //W3School 14 W3School 24

     例举几个常用的,具体看一看上面那个链接文章

    [xyz] [a-z] [A-Z] [0-9] 这个是一个范围 只要在这个范围内就匹配 比如[xyz] 可以匹配"x292393"或者"y887"

    + (大于等于1次)

    var str="去年是2018年,今年是2019年";
    var patt=/d+/g; //匹配字符串里面所有数字  这样写也可以 var patt=/[0-9]+/g; //匹配字符串里面所有数字
    document.write(str.match(patt).join("")) //20182019

    ? 通配符匹配0或者1个字符

    * 0或者多个字符

    var str = "1232222abc";
    var patt1 = /^[0-9]+abc$/;
    document.write(str.match(patt1));  //1232222abc
    [a-z] //匹配所有小写字母
    [A-Z] //匹配所有的大写字母
    [a-zA-Z] //匹配所有的数字
    [0-9] //匹配所有的数字
    [0-9.-] //匹配所有的数字,句号和减号
    d  //匹配一个数字字符
    D  //匹配一个非数字字符
    s  //匹配任何不可见字符
    S //匹配任何可见字符
    w //匹配包括下划线的任何单词字符  
    W  //匹配任何非单词字符
    f //匹配一个换页符
    //匹配一个回车符
    //匹配一个制表符
    //匹配一个换行符
    [f ]
    ^[a-z][0-9]$ //

    var str="a1";
    var str1="aw2";
    document.write(str.match(/^[a-z][0-9]$/)) //a1
    document.write(str1.match(/^[a-z][0-9]$/)) //null
     
    [^0-9] //除了数字紫外的所有字符这里的^表示非
    ^[a-zA-Z_]$ //所有的字母和下划线
    ^a$ //字母a
    ^a{4}$ //4个字母a
    ^a{2,4}$ //aa,aaa,aaaa
    ^a{2,}$ //包含多于两个a的字符串
    . 号 //匹配除“ ”和" "之外的任何单个字符。
    {n}  //匹配确认的n次
    {n,} //至少匹配n次
    {n,m} //最少匹配n次且最多匹配m次
     
    ^[a-zA-Z0-9_]{1,}$ //所有包含一个以上的字母、数字或下划线的字符串
    ^[1-9][0-9]{0,}$ //所有正整数
    ^-{0,1}[0-9]{1,}$ //所有整数
    ^[-]?[0-9]+(.[0-9]+)?$ // 所有的浮点数
     
     常用实例 用test()方法
    数字:^[0-9]*$  //只有字符串全部是数字才会true
    3位的数字   /^d{3}$/   
    最少3位的数字  /^d{3,}$/
    3-5位的数字  /^d{3,5}$/
    正整数  /^[1-9][0-9]*$/
    汉字: /^[u4e00-u9fa5]{0,}$/
    英文和数字 :/^[A-Za-z0-9]+$/
     
     
     
     
  • 相关阅读:
    Win8系统 Python安装
    一些安卓开源框架整理
    Android 媒体键监听以及模拟媒体键盘的实现 demo
    android View 自动 GONE 问题
    Android 定时器TimerTask 简单使用
    关于Android studio 相对 eclipse 优点
    Java序列化与反序列化
    android shape的使用 边框
    Android Studio 修改 包名 package name
    Android WebView Long Press长按保存图片到手机
  • 原文地址:https://www.cnblogs.com/zhihou/p/10916391.html
Copyright © 2011-2022 走看看