正则学习
\b
是正则中表示分隔符的含义
比如精确地查找hi
就使用\bhi\b
.
代表地是非换行符地任意字符
*
代表的是数量,而且是任意数量
.*
连起来的意思就是任意数量的非换行符
\bhi\b.*lucy\b
代表的就是hi后面有lucy字段的
\d
代表的是数字,比如0\d\d-\d\d\d\d\d\d\d\d
表示0开头然后两个数字,加上8个数字
{num}
代表的就是重复的次数,比如上面的写法就可以改写成0\d{2}-\d{8}
\w
可以看成word,这里代表这数字,字母,汉字,下划线
\s
可以看成space,这里代表的是空格,不论是换行符,还是中英文空白符
+
代表的重复
+
*
{num}
的区别,区别在于+
代表重复,且至少有一次。*
则不限制数字,并且可以数量为0,{mun}
则是写得非常详细的数量,{num-num}
表示数量是哪一个范围
^
表示字符串开头
$
表示字符串结尾
那么和\b
有什么不同呢?这是分隔符表示开头或结尾,而^
,$/
是确定字符串的开始和结尾。
^\d{5,8}\$
表示数字是5到8位
当查找一个.
时需要使用一个转义的字符\.
其实
+
类的是限定符+
,*
,?
,{num}
,{num,}
,{num,num}
,其中?
代表的是重复0次或者1次,{num,}
代表的是最少,而没有最多
[.?!]
表示标点符号的集合,[a-z]
表示的是小写的字符串合集
分支条件: | 其实就是或者。不过注意的就是,当从左向右判断的时候,如果先满足了前面的条件,就不会进行后面的判断了
\d{5}|\d{5}-\d{4}
这个正则永远不会返回9位的数字,因为前五位都是数字,被第一个条件匹配。
()
的作用是将需要重复的多个字符串放入其中,作为一个单元小组来使用限定符(\d{1,3}\.){3}\d{1,3}
用反义的方式,其实就是不包含,\W
等。这些方式使用的是大写元字符,而一些范围的排除使用[^]
的方式,比如<a[^>]+>
匹配用尖括号括起来的以a开头的字符串
待续