作者:Ben Forta——世界著名专家、Aodbe技术界知名专家,《SQL必知必会》、《MySQL必知必会》作者。
1. 概述:
正则表达式(regular expression,简称regex);
用途:搜索、替换;
由正则语言创建,嵌入到其他语言或软件产品中的“迷你”语言;
语法较简单真正的挑战是解决实际的问题;
默认只返回第一个匹配结果,但都有获取全部的机制。比如JavaScript里,可选的g(意思是global,全局)标志将返回一个包含着所有匹配结果数组;
默认区分大小写,但都支持不区分的方式。比如JavaScript可用i标志来强制执行一次不区分字母大小写的搜索。
2. 正则表达式字符含义:
字符 |
说明 |
. |
匹配任何一个单个字符,如果必须需要一个“. ”,则需要转义。 |
|
是一个元字符(metacharacter,表示“这个字符有特殊含义,而不是字符本身含义”)。在匹配它本身的时候,必须把它转义为。 |
[] |
字符集合,其内可存放ASCII字符表里的任意字符,至少匹配集合中任意一个字符。 |
- |
在字符集合中作为连字符,其他时候只是一个普通字符,无须转义。 |
^ |
取非匹配。 |
对“-”如何使用的简单说明:
- A-Z,匹配从A到Z的所有大写字母;
- a-z,匹配从A到Z的所有小写字母;
- A-z,在ASCII中,从字符A到z的所有字符。注意:此模式不常用,因为它还包含[和^等在ASCII字符表里排列在Z和a之间的字符。
- [0-9]的功能与[0123456789]完全相同。
3. 空白元字符:
元字符 |
说明 |
[b] |
回退(并删除)一个字符(Backspace键) |
f |
换页符 |
n |
换行符 |
r |
回车符 |
t |
制表符(Tab键) |
v |
垂直制表符 |
注意:rn匹配一个“回车+制表”组合,这是Windows系统文本行结束标签。Unix和Linux系统只使用一个换行符结束一个文本行。同时适用于Windows、Unix和Linux系统的正则表达式应该包含一个可选的r和一个必须的n。
4. 数字元字符:
元字符 |
说明 |
d |
任何一个数字,等价于[0-9]。 |
D |
任何一个非数字,等价于[^0-9]。 |
配套的工具:
Regular Expression Tester(正则表达式测试器)
https://regex101.com/
http://www.regexpal.com/