正则表达式
正则表达式是一个描述字符排列或模式匹配的规则,我们可以利用它来制定自己的规则,获取到我们想要的结果
分类
基本正则表达式:Basic Regular Expression 又叫 Basic RegEx 简称 BREs,在基本正则表达式中作用的元字符为:
^、$、.、[、]、*扩展正则表达式:Extended Regular Expression 又叫 Extended RegEx 简称 EREs,其为在基本正则表达式上新增了
(、)、{、}、?、+、等元字符元字符,使得正则表达式更加简洁易用。
原字符
通用 POSIX 原字符
[:alnum:]字母数字[a-z A-Z 0-9][:alpha:]字母[a-z A-Z][:blank:]空格或制表键[:cntrl:]任何控制字符[:digit:]数字[0-9][:graph:]任何可视字符(无空格)[:lower:]小写[a-z][:print:]非控制字符[:punct:]标点字符[:space:]空格[:upper:]大写[A-Z][:xdigit:]十六进制数字[0-9 a-f A-F]
特殊字符,在扩展正则表达式中加上
\则被认为其具有特殊含义:\w匹配任意数字和字母,等效[a-zA-Z0-9_]\W和\w相反,等效[^a-zA-Z0-9_]\b匹配字符串开始或结束,等效\<和\>\s匹配任意的空白字符\S匹配非空白字符
匹配
字符匹配
.匹配任意单个字符[]匹配中括号范围内的任意单个字符^对匹配的字符取反|匹配提供的两个字符
数量匹配
*匹配前面字符 任意次,可以0个、1个、也可以无数个?匹配前面字符 0次或者1次+匹配前面字符 至少1次{m,n}匹配前面字符 最少m次,最多n次.*匹配任意字符任意次数
位置锚定
^行首锚定,放置在模式最左边$行尾锚定,放置在模式最右边\<、\b词首锚定,匹配单词词首\>、\b词尾锚定,匹配单次词尾
分组引用
()将括号内的匹配存入内存,之后可以通过\1\2引用
贪婪模式
通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪婪"表达式转换为"非贪婪"表达式或者最小匹配。
