基本操作
符号 | 举例 | 匹配 |
? 限定符:表示前面的字符出现0次或者1次 | used? | use or used |
* 限定符:表示前面的字符出现0次或者多次 | ab*c | ac or abc or abbbbc |
{ } :限定范围 | a{6} ab{2,6} ab{2,} | b出现6次 b出现2~6次 b出现2次以上 |
( a | b ) :或 | a ( cat | dog ) | a cat or a dog |
[abc]:只能取方括号内的字符 | [ a - z ] [ a - z A - Z 0 - 9] | 所有小写字母 所有英文字母+所有数字 |
^ :除 | [ ^ 0 - 9 ] | 除0~9的所有非数字字符(包括换行符) |
元字符
\d:数字字符 ;\D:非数字字符
\w:单词字符,即所有英文字符、数字、上下划线 ;\W:非单词字符
\s:空白字符 ;\S:非空白字符
. :包含除换行符的任意字符
^:匹配行首 ;$:匹配行尾
运用:
<.+>:贪婪匹配,匹配一整个字符串包括 ' > '
<.+?>:懒惰匹配,匹配<><>...
实例
RGB颜色值: #[a-fA-F0-9]{6}\b
其中,'\b'表示单词的边界,避免这里的文本也被识别成RGB颜色值
IP地址匹配: \b((25[0-5]|[2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|[2[0-4]\d|[01]?\d\d?)\b