每日一记
正则表达式
概念:正则表达式是用于描述字符排列和匹配模式的一种语法规则。
作用:
1.匹配,也常常用于从字符串中析取信息。
2.用新文本代替匹配文本。
3.将一个字符串拆分为一组更小的信息块。
基本语法:
1.正则匹配模式使用分隔符与元字符组成
(1)分隔符可以是非数字、非反斜线、非空格的任意字符
(2)经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)
2.元字符是用于构造规则表达式的具有特殊含义的字符
3.如果要在正则表达式中包含元字符本身,必须在其前加上”\”进行转义
【常见元字符】
元字符 说明
* 0次、1次或多次匹配其前的原子
+ 1次或多次匹配其前的原子
? 0次或1次匹配其前的原子
| 匹配两个或多个选择
^ 匹配字符串串首的原子
$ 匹配字符串串尾的原子
[] 匹配方括号中的任一原子
[^] 匹配除方括号中的原子外的任何字符
{m} 表示其前原子恰好出现m次
{m,n} 表示其前原子至少出现m次,至少出现n次(n>m)
{m,} 表示其前原子出现不少于m次
() 整体表示一个原子
. 匹配除换行之外的任何一个字符
边界限制:
1.^和$分别指定字符串的开始和结束。
2.^Tom$精确匹配————Tom模糊匹配
3.重复匹配:
?匹配存在?前的一个字母或是不存在这个字母的字符串
*匹配0/1/多次匹配该字母的字符串
+匹配1/多次该字母的字符串
.匹配除换行符外的任何字符
.*组合称为全匹配符或单含匹配符
{}指定原子重复的次数
{m}表示其前原子恰好出现m次;
{m,n}表示其前原子至少出现m次,至多出现n次;
{m,}表示其前原子出现不少于m次。
[]匹配其中的一个原子并且地位平等
|匹配多个选择之一,可以连用|
4.模式单元:
()将其中的正则表达式变为原子(或称为模式单元)使用————其实用处相等于数学的括号
5.模式匹配的顺序(从高到低):
顺序 元字符 说明
1 () 模式单元
2 ?* +{} 重复匹配
3 ^$ 边界限制
4 | 模式选择
特殊字符:
$匹配输入字符串的结尾位置
()标记表达式开始与结束的位置
*匹配前面的子表达式0次或多次
+匹配前面的子表达式1次或多次
.匹配除换行符\n外的任何单字符
[标记一个中括号表达式的开始
?匹配前面的子表达式0次或一次,或指明一个非贪婪限定符
\将下一个字符标记为特殊字符/原义字符/向后引用/八进制转义符
^匹配字符串的开始位置(在方括号中表示不接受该字符集合)
{标记限定符巴达兽的开始
|指明两项之间的一个选择