一个在线正则表达式工具
在线正则表达式测试正则表达式的基本要素
①字符类
②数量限定符
③位置限定符
④特殊符号
字符类
字符 | 含义 |
---|---|
. | 匹配任意一个字符,比如a.可以匹配ab或者ac |
[ ] | 匹配[ ]中任意一个字符,比如[1234]可以匹配12或123或1234 |
^ | 搭配[ ]使用,表示匹配除[ ]中的字符,比如[^1234]可以匹配56或89,但不能匹配12 |
- | 搭配[ ]使用,表示范围,比如匹配数字和字母组成的字符可以写作[a-zA-Z0-9] |
数量限定符
字符 | 含义 |
---|---|
? | 紧跟在前面的单元匹配零次或一次 |
+ | 紧跟在前面的单元匹配一次或多次 |
* | 紧跟在前面的单元匹配零次或多次 |
{n} | 紧跟在前面的单元精准匹配n次 |
{m,n} | 紧跟在前面的单元匹配m至n次 |
{m,} | 紧跟在前面的单元匹配至少m次 |
{,n} | 紧跟在前面的单元匹配至多n次 |
数量限定符只限定紧跟在他前面的一个单元。比如abc*表示c出现零次或多次,(abc)*表示abc整体出现零次或多次。
位置限定符
字符 | 含义 |
---|---|
^ | 匹配行首的位置,比如^a表示匹配以a开头的那一行 |
$ | 匹配行末的位置,比如$a表示匹配以a结尾的那一行 |
\< | 匹配单词开头的位置,比如\< he表示匹配以he开头的单词 |
\> | 匹配单词结尾的位置,比如he\>表示匹配以he结尾的单词 |
\b | 匹配单词开头或结尾的位置,比如\bhe匹配以he开头的单词,he\b匹配以he结尾的单词 |
\B | 匹配非单词开头和结尾的位置,比如\Bhe匹配不以he开头的单词 |
特殊符号
字符 | 含义 |
---|---|
\ | 转义字符 |
() | 将表达式的一部分用()组成一个单元,可以对整个单元使用数量限定符 |
| | 连接两个子表达式,表示或的关系 |
- 基本正则与扩展正则
基本正则grep | ?+{}()为普通字符,经\转义后为特殊 |
---|---|
扩展正则egrep | ?+{}()为特殊字符,经\转义后为普通 |
grep -E 表示扩展正则。
grep是贪婪模式,即尽可能多的匹配符合条件的内容。
其他常用通用字符及其替换
字符 | 匹配 | 替换正则 |
---|---|---|
\d | 数字字符 | [0-9] |
\D | 非数字字符 | [^0-9] |
\w | 数字字母下划线 | [a-zA-Z0-9_] |
\W | 非数字字母下划线 | [^\w] |
\s | 表格、换行等空白区域 | [\r\t\n\f] |
\S | 非空白区域 | [^\s] |
一个正则匹配手机号的表达式:
‘^1[345789][0-9]{9}$’