预定义类: 

  [^\n\r]                                除了换行和回车的任意字符
\d                     [0-9]                                 数字
\D                    [^0-9]                                非数字
\s                     [ \t\n\x0B\f\r]                       空白字符
\D                    [^ \t\n\x0B\f\r]                     非空白字符
\w                    [a-zA-Z_0-9]                      单词字符(所有字母、数字和下划线)
\W                   [^a-zA-Z_0-9]                     非单词字符

量词:

?                     出现零次或一次
*                       出现零次或多次(任意次)
+                      出现一次或多次(至少出现一次)
{n}                    一定出现n次
{n,m}                至少出现n次,但不能超过m次
{n,}                   至少出现n次

贪婪+”?” –> 惰性+”+” –> 支配

贪婪性的量词优先匹配整个字符串,如若没有匹配成功则从字符串的末尾去掉一个字符,再继续匹配。
惰性的量词优先从字符串的第一个字符开始匹配,如若没有匹配成功则加入字符串第二个字符进行匹配。
支配量词只对字符串匹配一次,不做其他尝试。
贪婪到惰性到支配:
?  —–>  ??  —-> ?+               出现零次或一次
*  ——> *? ——> *+               出现零次或多次(任意次)
+ ——-> +? ——> ++             出现一次或多次(至少出现一次)

边界:

^                    行开头
$                   行结尾
\b                单词边界
\B                非单词边界
如下正则:

/****/igm      正则表达式末尾i代表忽略大小写. g代表匹配整个字符串global.  m代表多行模式,匹配换行符和真正的结尾。

下面测试正则一些基础属性的例子–

         上面的代码是对regexp的一些基础进行练习测试的代码,还有诸如边界和多行模式就没有写出来了,在上面的文字和代码里已经提到了。

         接下来在去深入一下regexp,去研究和学习一些比较常用到的Regexp Expressions,比如卡号、电话、邮箱、字符串等等。

发表评论