正则表达式基础

正则表达式

正则表达式是一种被用于从文本中检索符合某些特定模式的文本。

1. 元字符:

元字符是构造正则表达式的基本元素:

元字符 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白字符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
  1. 匹配有abc开头的字符串:

\babc 或着 ^abc

  1. 匹配8位数字的QQ号码:

^\d\d\d\d\d\d\d\d$

  1. 匹配以155开头的11位数字的手机号码:

^155\d\d\d\d\d\d\d\d$

2. 重复限定符

为了避免重复地书写元字符,引入重复限定符。

语法 说明
* 重复0次或更多次
+ 重复1次或更多次
重复0次或1次
重复n次
重复n次或更多次
重复n到m次

使重复限定符对之前的正则表达式进行改造:

  1. 匹配8位数字的QQ号码:

^\d{8}$

  1. 匹配1开头11位数字的手机号码:

^1\d{10}$

  1. 匹配银行卡号是14~18位的数字:

^\d{14,18}$

  1. 匹配以a开头的,0个或多个b结尾的字符串

^ab*$

3. 分组

从上节的例4可以看到,限定符作用在左边最近的一个字符。如果想要ab同时被限定,应该怎么办呢?

正则表达式中使用小括号()来分组,即将括号中的内容作为一个整体。

例:匹配包含0到多个ab字符串

^(ab)*$

4. 转义

使用在这些限定符前加\,使元字符、限定符或关键字转移成普通字符。

例:匹配以(ab)开头的字符串

^(\(ab\))*$

5. 条件或

正则表达式使用符号 | 来表示或,当满足任何一个条件是,都会当做是匹配成功。

例:匹配所有联通的手机号

^(130|131|132|155|156|185|186|145|176)\d{8}$

6. 区间

正则表达式使用 [] 来表示区间条件。

  1. 限定0到9:[0-9]
  2. 限定A到Z:[A-Z], [a, z]
  3. 限定某些数字[165]

因此,前例可以改写为:

^((13[0-2]) | (15[5-6]) | (15[5-6]) | 145|176)\d{8}$

posted @ 2020-11-28 10:40  sys_malloc  阅读(108)  评论(0)    收藏  举报
总访问: counter for blog 次