元字符:
"+" 规定前导字符必须在目标对象中连续出现一次或多次;
"*" 规定前导字符必须在目标对象中连续出现零次或多次;
"?" 规定前导字符必须在目标对象中连续出现零次或一次;
"d" 代表一个0-9的数字,补集为"D"(即非数字字符);
"w" 匹配字母,数字或下划线的字符,补集为"W";
"s" 匹配单个空格符(包括tab键和换行符),补集为"S";
"n" 换行 "r"回车 "t"制表 "v"垂直制表 "f"换页 "e"Escape " " 表示null字符;
"A" 字符串开头 "Z"字符串结尾或行尾
"." 匹配除换行符"n"外的任意字符;
"[...]" 匹配"[]"内列出的所有字符;
"[^...]" 匹配非"[]"内列出的所有字符;
定位符:
"^"规定字符必须出现在目标字符的开头;
"$" 规定字符必须出现在目标字符的结尾;
"b"规定匹配对象必须位于字符串的开头和结尾两个边界之内;
"&;"匹配一个单词的开头;
"&;"匹配一个单词的结尾。
范围区间:
"{n}","{n,}",m}"分别依次表示匹配前面字符出现n次、出现n次或多于n次和出现n次到m次;
"[a-z]","[A-Z]","[0-9]"分别依次匹配一个小写a到z,大写A到Z,数字0到9中的任意字母或数字;
则一匹配: "(|)" 若值为(ab|xy)则匹配的值为ab或者xy。
转义字符:"" 将特殊字符转译成一个字符,一般出现在目标字符串中含有特殊字符的情况下。
贪婪与非贪婪:
".*"匹配最后一个出现值;
".*?" 匹配第一个获取到的值。
十六进制字符范围:
"xXX"和"xXXXX"表示一个字符("X"表示十六进制数)
组和非捕获组:
"()" 正则表达式引擎会记忆"()"中匹配到的内容,后面可重复运用到组里面内容的地方标记"1"(是表达式中的第一个组则为"1",数字依次类推);
"(?:)" 非捕获组,正则表达式引擎不保存该组内容。
"(?<name>exp)" 匹配文本到名称为"name"的组里面,也可写作"()"
零度正预测先行断言:
"(?!exp)" 匹配exp后面跟的不是exp的位置
"(?<=exp)" 匹配exp后面的位置
"(?<!exp)" 匹配前面不是exp的位置
零宽正向先行断言: "(?(exp)yes|no)" = "(?(exp)yes)" 如果在这个位置能匹配,使用yes作为词组的表达式;否则使用no。
高级模式匹配规则:
"i" 表示进行忽略大小写的匹配;
"g" 匹配全局,即找出被检索字符串的所有匹配
"m" 多模式匹配,正对多行字符串,匹配每行中的内容而不是把换行作为字符串的结束标志
注释: "(?#comment)" 不对正则表达式的处理产生任何影响。