1、正则表达式中的基本符号及含义:
. 表示任意一个字符(除了空格、换行、tab等)
*用在表达式(也就是字符)后面表示匹配前面的表达式0次或多次
+用在表达式(也就是字符)后面表示匹配前面的表达式至少一次
?用在表达式(也就是字符)之后表示匹配前面的表达式0次或1次
^表示匹配的开始
$表示匹配的结束
|表示或
\b表示单词的边界 \B非单词边界
\d表示一个数字等同于 [0-9] \D非数字
\w表示一个单词字符(包括下划线) \W非单词字符等同于 [^a-zA-Z0-9_]
\s表示一个空白符(不可见字符)
"\r"(回车),"\n" (换行)“\f”(换页符)“\t”(制表符)”\v“(垂直制表符) \S表示可见字符 等同于 [^\r\n\f\t\v]
2、表达式含义
(xxx) 表示将小括号中的内容放在一个临时组中,正则表达式中最多可有9个临时组,用\1-\9获取
{n} 用在字符后边表示匹配前面的字符n次,也就是说前面的字符应该出现n次
[abc] 表示abc中的任何一个 [^abc]表示非abc中的任何一个
[a-z&&[cdef]]表示取a-z和cdef的交集
[a-z][a-e]表示取并集
(?:xxx)表示非获取匹配
(?=exp)零宽度正预测先行断言 匹配的结果为 xxxexp 也就是以exp结尾的字符串(结果不包括exp,只是为了容易理解才那么写的)
(?<=exp)零宽度正回顾后发断言 匹配的结果为 expxxx 也就是以exp开头的字符串(结果不包括exp,只是为了容易理解才那么写的)
(?!exp)零宽度负预测先行断言 匹配的结果为 xxxxyz 也就是非exp结尾的字符串
(?<!exp)零宽度负回顾后发断言 匹配的结果为 xyzxxx 也就是非exp开头的字符串
3、有用的匹配
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]