速测
速查
锚点 | |||
---|---|---|---|
^ | 匹配字符串或行的开头 | ^\w+ | an answer or a question |
$ | 匹配字符串或行的开头 | \w+$ | an answer or a question |
\b | 匹配单词的开头或末尾 | n\b | an answer or a question |
\B | 匹配不在单词的开头或末尾的位置 | n\B | an an swer or a question |
字符类 | |||
[abc] | 匹配集合中的任意字符 | b[eo]r | bar ber bir bor bur |
[^abc] | 匹配不在集合中的任意字符 | b[^eo]r | bar ber bir bor bur |
[a-z] | 匹配两个字符之间的任意字符 | [e-i] | abcd e f g h i jklmnopqrstuvwxyz |
. | 匹配除换行符之外的任意字符 | . | h i 0 1 2 _ - ! ? |
\w | 匹配字母、数字或下划线 | \w | h i 0 1 2 _ -!? |
\W | 匹配除字母、数字和下划线之外的任意字符 | \W | hi012_ - ! ? |
\d | 匹配所有数字 | \d | +1 -(4 4 4 )-2 2 2 |
\D | 匹配除数字外的任意字符 | \D | + 1- ( 444) - 222 |
\s | 匹配任意空白字符 | \s | one two |
\S | 匹配除空白字符以外的任意字符 | \S | o n e t w o |
量词与分支 | |||
+ | 匹配 1 次或多次 | be+p | bp bep beep beeep |
* | 匹配 0 次或多次 | be*p | bp bep beep beeep |
? | 匹配 0 次或 1 次 | colou?r | color , colour |
{n} | 匹配刚好 n 次 | be{1}p | bp bep beep beeep |
{n,} | 匹配至少 n 次 | be{1,}p | bp bep beep beeep |
{n,m} | 匹配 n 到 m 次 | be{1,2}p | bp bep beep beeep |
a|b | 匹配 a 或 b | (c|r)at | fat, cat , rat |
组和引用 | |||
(abc) | 将 abc 作为一个整体(组)进行匹配 | (ha)+ | hahaha ha h haha |
\1 | 引用第一个组(第一个括号中的内容) | (\w)a\1 | hah haa dad |
(?:abc) | 创建无法引用的分组,abc 无法被 \1 引用 | (?:ha)+ | hahaha ha h haha |
零宽断言 | |||
(?=abc) | 正向先行断言,匹配后面紧跟 abc 的位置 | \d(?=nd) | 1st 2 nd 3pc |
(?!abc) | 负向先行断言,匹配后面不紧跟 abc 的位置 | \d(?!nd) | 1 st 2nd 3 pc |
(?<=abc) | 正向后行断言,匹配前面紧跟 abc 的位置 | (?<=%)\d | #1 $2 %3 |
(?<!abc) | 负向后行断言,匹配前面不紧跟 abc 的位置 | (?<!%)\d | #1 $2 %3 |
零宽断言
零宽:括号内的字符只用于匹配位置,不占用字符,所以被称为"零宽",类似 ^
和 $
锚定开头和末尾
先行:类似 abc$
,匹配在前,锚点在后
后行:类似 ^abc
,锚点在前,匹配在后
正向:匹配括号中的表达式
负向:不匹配括号中的表达式
标志
flag 不写在正则表达式里,位于表达式之外,格式:/pattern/flags
i
:不区分大小写(ignore)
g
:全局匹配(global)
m
:多行匹配(multi line)
常用正则表达式
ipv4 地址 | (\d{1,3}\.){3}(\d{1,3}) | 64 bytes from 110.242.68.66 : icmp_seq=2 ttl=48 time=41.6 ms |