正则表达式常用符号和字符
正则表达式
正则表达式是由一些字符和特殊符号组成的字符串,他们描述了模式的重复或表述多个字符,于是正则表达式能按照某种模式匹配一系列有相似特征的字符串。也即它们能匹配多个字符串。
常用特殊字符和符号
0.择一匹配 (|)
| 从多个模式中选择其一,类似于逻辑或,例如:
正则表达式 | 匹配的字符串 |
apple|orange | apple,orange |
cpp|java|python | cpp,java,python |
1.任意匹配单个字符 (.)
. 匹配除了换行符\n以外的任意字符,例如:
正则表达式 | 匹配的字符串 |
a.c | a(任意字符)c |
.. | 任意两个字符 |
2.从字符串开始或结尾或单词边界匹配(^) ($) (\b) (\B)
^或\A接字符串,表示以该字符串开始(区别:^匹配一行的开始,\A匹配输入的开始)
$或\Z接字符串,表示以该字符串结尾(同上)
\b接字符串,表示以该字符串开始(区别于^和\A:匹配一个单词起始部分,不管该单词前面是否有任何字符。通俗来说:^匹配字符串的开始,\b匹配单词的开始)
\B接字符串,表示以该字符串为子串但不是边界
正则表达式 | 匹配的字符串 |
^in | 任何以in开头的字符串 |
com$ | 任何以com结尾的字符串 |
the | 任何包含the的字符串 |
\bthe | 任何以the开始的字符串 |
\bthe\b | 单词zhe |
\Bthe | 任何包含但不以the开始的字符串 |
the\B | 任何包含但不以the结尾的字符串 |
3.创建字符集,类似于择一匹配 ([])
([])用于匹配某些特定字符,区别于(.)匹配任意字符,匹配方括号中包含的任意字符。
正则表达式 | 匹配的字符串 |
c[abcd]d | cad,cbd,ccd,cdd |
[cp][jv][py] | cjp,pjp,cvp,cvy,pjp,pjy |
4.限定范围或否定 (-) ([^])
方括号中两个字符以-符号连接表示指定一个范围,在连接的字符之中。
方括号中紧紧连接^符号表示不匹配给定字符集任一字符
正则表达式 | 匹配的字符串 |
[a-c][d-f] | ad,ae,af,bd,be,bf,cd,ce,cf, |
[^aeiou] | 一个非元音字符 |
[^\t\n] | 不匹配制表符或换行符 |
5.零次,一次或多次匹配(*) (+) (?) ;频数匹配 {M} {M,N} {M,}
*将匹配其左边的正则表达式出现零次或多次的情况。
+将匹配其左边的正则表达式出现一次或多次的情况。
?将匹配其左边的正则表达式出现零次或一次的情况。
{M}将匹配其左边的正则表达式出现M次的情况。
{M,N}将匹配其左边的正则表达式出现M到N次的情况。
{M,}将匹配其左边的正则表达式出现M次或更多次的情况。
正则表达式 | 匹配的字符串 |
dog? | dog,do |
dog* | do,dog,dogg,doggg,....do任意个g |
dog+ | dog,dogg,doggg,....dog任意个g |
dog{5} | doggggg |
dog{2,3} | dogg,doggg |
6.表示字符集的特殊字符 (\w)(\d) (\s)
\w 匹配任何字母数字下划线字符
\d 匹配任何十进制数字
\s 匹配任意空格字符
正则表达式 | 匹配的字符串 |
\w+ | 一串由字母数字组成的字符串 |
\d{3}-\d{3}-d{4} | 美国电话号码形式,如800-555-1212 |
\w+@\w+\.com | xxx@yyy.com形式的电子邮件地址 |
\s | 与[\n\r\t\v\f]相同,与\S相反 |