一个同事很久以前写的使用正则表达式说明
1、“|”,表示2选1。
2、原子量化。
{n,m} 最少匹配n次,但不多于m次。
{n,} 最少配置n次。
{n} 正好匹配n次。
* 匹配0或多次。
+ 匹配1或多次。
? 匹配0或1次。
3、原子。
a、在括弧内的规则表达式。
b、一个“.”匹配除了“\n”之外的任何内容。
c、一个“^”是一个null符号,匹配一字符串或一行的开始。
d、一个“$”是一个null符号,匹配一字符串或一行的结束。
e、字符种类(如[abcd])和范围(如[a-z])
特殊的转义字符在一个字符种类中有效(除了后引用和边界)。
“\b”是在一个字符种类中的空格。
f、特殊的转义字符
\b null符号,匹配一单词的边界(\w在一边,\W在另一边)。
\B null符号,匹配一非单词的边界。
\A 只配置字符串的开始。
\Z 只匹配字符串的结束(或结束处的换行前)。
\n 换行。
\r 回车。
\t tab。
\f 走纸。
\d 数字 [0-9]。
\D 非字符 [^0-9]。
\w 一个单词字符 [0-9a-z_A-Z]
\W 一个非单词字符 [^0-9z-z_A-Z]。
\s 一个空格字符 [ \t\n\r\f]。
\S 一个非空格字符 [^ \t\n\r\f]。
\xnn 字符的十六进制表示。
\cD 匹配相应的控制字符。
\nn 或 \nnn 字符的八进制表示,除了后引用。一个
\1,\2,\3等等 匹配任何第一、第二、第三等等已经匹配了的括弧内的组。这称为“后引用”。
如果没有相应的组,该号码被解释成一个字符的八进制表示。
\0 匹配null字符。
任何其他转义字符匹配它自己。
4、括弧内的表达式,作为子模板组进行匹配,并被保存通过某种方法使用。
缺省,一个量化子模板是“贪婪的”。换句话说,它在没有导致模板剩余部分不匹配的情况下尽可能地匹配多次。
为了改变这种情况,使得在没有导致模板剩余部分不匹配的情况下,尽可能地匹配少次,可以使用“?”在量化词之后。
如“*?”,“+?”等。