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

    正则表达式:
    什么是: 专门描述字符串中每位字符出现规律的表达式
    格式的定义
    何时使用: 只要按规律同时查找,替换,验证多个关键词时
    都要先定义格式规则
    如何使用:
    1. 最简单的正则就是关键词的原文
    2. 字符集: 规定一位字符的备选字符列表
    [备选字符的列表]
    强调: 一个字符集[],只能匹配一位字符
    特殊: 1. 如果字符集中的字符部分连续
    可用-省略中间的字符,-读作“到”
    常用: 一位数字: [0-9]
    一位大写字母:[A-Z] 小写[a-z]
    一位汉字: [u4e00-u9fa5]
    一位字母数字或下划线: [0-9A-Za-z_]
    2. 除了xxx:[^xxx]
    ^读作"除了",必须在[]的开头
    比如: 除了4和7之外所有字符:[^47]
    3. 预定义字符集: 对常用字符集的简化写法
    一位数字: d =>[0-9]
    一位字母数字或下划线: w =>[0-9A-Za-z_]
    一位空字符: s => 包括: 空格 制表符 换行

    一位任意字符: .
    何时使用: 如果需求和预定义字符集完全匹配,则优先使用预定义字符集。否则自定义普通字符集
    4. 量词: 规定字符集出现次数的规则
    一般紧跟在字符集之后,修饰相邻的字符集
    有明确数量:
    {n,m} 最少n次,最多m次
    {n,} 最少n次,多了不限
    {n} 必须n次,不能多也不能少
    不确定数量:
    ? 可有可无,最多一次
    * 可有可无,多了不限
    + 至少一次,多了不限
    5. 选择和分组:
    选择:或 | 表示在两个规则之间挑一个匹配
    优先级最低
    分组: 在正则表达式内部用()划分子表达式
    何时: 获取关键词的部分内容时,都要先分组再匹配
    希望数量词修改一组字符集时
    手机号: +86或0086 可有可无,最多一次
    空字符 可有可无,多了不限
    1
    3,4,5,7,8
    9位数字
    (+86|0086)?s*1[34578]d{9}

    例子:

    var str="one two three four five";
    var i=4;
    var reg=/[a-z]+/g;
    str=str.replace(reg,function(kwords){
    return kwords+=i++;
    });
    console.log(str);//one4 two5 three6 four7 five8

  • 相关阅读:
    ubuntu下安装maven
    159.Longest Substring with At Most Two Distinct Characters
    156.Binary Tree Upside Down
    155.Min Stack
    154.Find Minimum in Rotated Sorted Array II
    153.Find Minimum in Rotated Sorted Array
    152.Maximum Product Subarray
    151.Reverse Words in a String
    150.Evaluate Reverse Polish Notation
    149.Max Points on a Line
  • 原文地址:https://www.cnblogs.com/tracy-zhu/p/5762486.html
Copyright © 2011-2022 走看看