限定符
符号 | 含义 |
---|
? | 匹配前面的子表达式零次或一次 |
+ | 匹配前面的子表达式一次或多次 |
* | 匹配前面的子表达式零次或多次 |
{n} | 匹配确定的 n 次 |
{n,} | 至少匹配n 次 |
{n,m} | 最少匹配 n 次且最多匹配 m 次 |
下面实例均用简单表达式:
元字符
符号 | 含义 |
---|
\d | 数字字符 |
\w | 单词字符,包含英文数字下划线 |
\s | 空白符,包含tab和换行符 |
\D | 非数字字符 |
\W | 非单词字符 |
\S | 非空白字符 |
. | 任意字符,不包括换行符 |
$ | 匹配行尾 |
^ | 匹配行首 |
示例1
|
示例2
|
或运算
符号 | 含义 |
---|
[ ] | 匹配 […] 中的所有字符 |
[a-z] | 匹配所有小写英文字母 |
[A-Z | 匹配所有大写英文字母 |
[0-9] | 匹配所有数字 |
[a-zA-Z0-9] | 匹配所有英文和数字 |
下面实例均用简单表达式:
贪婪与懒惰匹配
*和+都是贪婪的,在后面加上?,实现非贪婪或最小匹配
示例1
|
示例2
|
示例
RGB颜色匹配
以#开头,一共六位,每位是数字,大写英文或者小写英文
示例1
|
IPV4地址匹配
IPV4地址在0-255之间
如果前两位是25,第三位就是0-5之间
如果前一位是2,第二位是0-4之间,第三位随意数字
如果第一位是0或1,后两位随意数字,但是也要至少出现一次
先用(25[0-5]|2[0-4]\d|[01]?\d\d?)筛选出合适的第一个部分
在加上. 一共筛选3次
这样写虽然很麻烦,但是可以加深对正则表达式的理解
\b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
示例2
|
文章使用在线正则表达式
在线测试工具