正则笔记

来源:互联网 发布:微信广告软件 编辑:程序博客网 时间:2024/05/21 10:45

正则表达式 regular expression:

什么是: 规定一类字符串字符出现规律的一套规则

何时: 2:

1. 验证字符格式

2. 使用规则模糊查找多种关键词

如何:

1. 最简单的正则表达式,就是关键词本身

2. 字符集:

什么是: 规定一位字符备选字符列表的集合

   何时: 只要一位字符上有多种备选字时

   如何:[备选字符列表]

    强调: 1. []不能随便加逗号和空格

         2. 一个[]字符集只能限定一位字符的备选范围

简写: 备选字符中部分字符是连续的,可用-省略中间字符:

  比如: 一位数字[0-9]

        一位小写字母[a-z]

        一位大写字母[A-Z]

        一位字母[A-Za-z]

        一位汉字[\u4e00-\u9fa5]

反选: 选择除了xxx都行: [^xxx]

3. 预定义字符集:

什么是: 常用字符集的最简化写法

   包括: 4:

     \d  一位数字, 代替[0-9]

     \w  一位字母,数字_,代替[A-Za-z0-9_]

     \s  一位空字符: 空格Tab,… …

     .   一位任意字符——通配符

    强调: 必须规则和预定义字符集的规则完全匹配,才能使用预定义字符集。

问题: 字符集只能规定一位字符的备选内容

     无法灵活规定出现次数

解决: 量词:

4. 量词: 灵活定义一位字符出现次数的规则

 何时: 只要规定字符集出现次数

 如何: 2大类:

1. 有明确数量边界:3个

字符集{m,n} 至少m次,最多n

      字符集{m,}  至少m次,多了不限

      字符集{m}  必须m

2. 没有明确数量边界:3

字符集?  可有可无,最多一次

      字符集*  可有可无,多了不限

      字符集+  至少一次,多了不限

  强调: 默认一个量词仅修饰相邻的前一个字符集

5. 选择和分组:

分组: 多个子规则()包裹为一组

为什么: 默认一个量词只能修饰一个字符集

何时: 只要希望一个量词同时修饰多个字符集

 选择: “规则1|规则2”  |读作

类似于程序中的或者

      只要匹配任意一个规则即可

身份证: 1,2,3

  15位数字  2数字 最后一个可能是数字或Xx

             后三位整体可有可无,最多1

    \d{15}     (\d{2}     [0-9Xx])?

手机号:

  +860086  整体可有可无,最多一次

  (\+86|0086)?

  空字符      可有可无,多了不限

  \s*

  1

  3,4,5,7,8挑一个

  [34578]

  9位数字

  \d{9}

  (\+86|0086)? \s*1[34578] \d{9}

, wei xin, w x, wechat

(|w(ei)?)\s*(|x(in)?)

6. 指定匹配位置: 3个位置

  ^开始位置,第一个字符之前

  $结束位置,最后一个字符之后

  何时: 只要仅匹配特定位置的值时

 比如: 匹配空字符:

  ^\s+ 字符串开头的空字符

  \s+$ 字符串结尾的空字符

  ^\s+|\s+$匹配开头或结尾的空字符

  \b 专指单词边界: ^ $空格 标点符号

    专门选择一个单词之用

原创粉丝点击