正则表达式 => 入门学习

学习内容:

《正则表达式30分钟入门教程》

学习网站:

  1. 正则表达式30分钟入门教程
  2. Mozilla RegExp正则表达式

学习笔记:

1. 什么是正则表达式?

正则表达式是记录文本规则的代码!

2. 常用元字符(metacharacter)

元字符说明举例
.匹配除换行符以外的任意字符.*: 匹配任意数量的不包含换行的字符
*匹配前面的模式 0 或多次/bo*/: 匹配 “bird” 中的 “b”
+匹配前面的模式 1 或多次/bo*/: 不匹配 “bird” 中的 “b”
^匹配字符串的开始/^A/: 不匹配 “an A” 中的 “A”,但匹配 “An A” 中的 “A”
$匹配字符串的结束/t$/: 不匹配 “eater” 中的 “t”,但匹配 “eat” 中的 “t”
\b匹配单词的开始或结束\b\w{6}\b: 匹配6个字符的单词
\d匹配一位数字,等价于[0-9]\d+: 匹配1个或更多连续的数字
\s匹配一个空白符,包括空格、制表符、换页符、换行符等。/\s\w*/: 匹配“foo bar”中的 ’ bar’
\w匹配字母或数字或下划线或汉字\b\w{6}\b: 匹配6个字符的单词

注:此为总览,后面会细分为:

  • 字符类别(Character Classes)
  • 字符集合(Character Sets)
  • 边界(Boundaries)
  • 分组(Grouping)
  • 反向引用(back references)
  • 数量词(Quantifiers)

3. 字符转义

`.`  ->  `\.`  
`*`  ->  `\*`
`\`  ->  `\\`
`(`  ->  `\(`
`)`  ->  `\)`

4. 数量词(Quantifiers)

字符说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

5. 字符集合(Character Sets)

字符说明举例
[xyz]一个字符集合,也叫字符组。匹配集合中的任意一个字符。你可以使用连字符’-‘指定一个范围[abcd] 等价于 [a-d],匹配”brisket”中的’b’和”chop”中的’c’
[^xyz]一个反义或补充字符集,也叫反义字符组。也就是说,它匹配任意不在括号内的字符。你也可以通过使用连字符 ‘-’ 指定一个范围内的字符[^abc] 等价于 [^a-c]。 第一个匹配的是 “bacon” 中的’o’ 和 “chop” 中的 ‘h’

6. 分支条件

字符说明
x|y匹配 x 或 y

注1:使用分枝条件时,要注意各个条件的顺序,例如:美国邮编的规则是5位数字,或者用连字号间隔的9位数字。匹配美国的邮政编码:\d{5}-\d{4}|\d{5}如果改成:\d{5}|\d{5}-\d{4},那么就只会匹配5位的邮编(以及9位邮编的前5位)。
注2匹配分枝条件时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。

7. 分组(Grouping)

字符说明
(x)匹配 x 并且捕获匹配项。 这被称为捕获括号(capturing parentheses)
(?:x)匹配 x 不会捕获匹配项。这被称为非捕获括号(non-capturing parentheses)

:(x)主要用于重复多个字符:用小括号来指定子表达式(分组),然后指定这个子表达式的重复次数了,还可以对子表达式进行其它一些操作。

常用实例

1. 匹配QQ号,必须为5位到12位数字:
^\d{5,12}$。
2. 匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等:
/\(?0\d{2}[) -]?\d{8}/
3. 匹配IP地址,如111.222.123.234:
/(2[0-4]\d|25[0-5]|[0-1]?\d\d){3}(2[0-4]\d|25[0-5]|[01]?\d\d)/
4. 匹配手机号码,如13888888888:
/[1][358]\d{9}/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值