正则的[]与()
對(duì)正則的模糊不清, 造就了今天的這篇文章
可以配合這個(gè)正則測(cè)試工具?http://tool.oschina.net/regex 閱讀本文
首先是 [] 這個(gè), 這個(gè)不管里邊寫(xiě)多少, 寫(xiě)的是什么, 終究只能匹配一個(gè)字符, 而不是多個(gè).
比如 [15|13] 這個(gè)匹配出來(lái)的是 1或5或|或3 (注: 也就是說(shuō)任何正則里的特殊字符, 除^在最前外, 在[]里, 都當(dāng)作是待匹配的一個(gè)字符來(lái)看待),?而不是15或13, 如果需要匹配的結(jié)果是后者, 可以使用()
即(15|13), ?關(guān)于(), 他匹配出的是一個(gè)串中的子字符串
比如匹配身份證的正則 ?^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$?
大量使用了(), 說(shuō)明了在匹配的結(jié)果中, 前6位, 然后4位, 2位, 2位 3位, 1位都可以去捕獲
比如 410181 2016 12 20 121 X
當(dāng)然了, 目前還沒(méi)有這個(gè)身份證號(hào)碼了, 中間我以空格形式格開(kāi)了, 每個(gè)部分, 都可以在匹配結(jié)果中去捕獲到, 這樣做, 個(gè)人理解可以使獲取某些值, 比如說(shuō), 出生在哪年, 哪月 更容易得到, 另外, 也方便進(jìn)一步的驗(yàn)證了.
關(guān)于捕獲, 以及后向(一說(shuō)反向, 一說(shuō)逆向), 可以參考這里的說(shuō)明?http://www.regexlab.com/zh/regref.htm 使用瀏覽器搜索 反向引用
關(guān)于 ?() ?可以參考我的?這篇日志
轉(zhuǎn)載于:https://www.cnblogs.com/debmzhang/p/3953256.html
總結(jié)
- 上一篇: CentOS常用到的查看系统命令
- 下一篇: Spring源码深度解析第2天