在開始之前請允許我展示一段正則:(?<=\s)\d(?=\s+)|(?<=\s)\d(?!\d+),在我沒有學的時候了,我就感覺這nm是一段隨便用鍵盤打的字,這是什麼玩意,,,我當時是這麼想的,真的沒明白這是個什麼東西。但是相信我在學完以後,你一定會真香的!!
什麼是元字元:元字元就是正則裡面最基本的操作單元,最基本的元素;
元字元說明.(就是乙個點)
用來匹配除了換行符以外的任意字元
\w匹配字母/數字/下劃線/漢字
\s用來匹配任意的空白符,包括空格、製表符、換頁符等。與 [ \f\n\r\t\v] 等效。
\d匹配數字
\b匹配乙個字邊界,即字與空格間的位置。例如,「er\b"匹配"never"中的"er」,但不匹配"verb"中的"er"。
^匹配乙個字串的開始
$匹配乙個字串的結束
將元字元大寫,就能匹配與之小寫相反的字元
元字元說明\w
匹配不是字母/數字/下劃線/漢字的字元
\s用來匹配不是空白符的字元
\d匹配任意的非數字
\b非字邊界匹配。「er\b"匹配"verb"中的"er」,但不匹配"never"中的"er"。
[^x]
匹配除了x以外的任意字元
[^aeiou]
匹配除了aeiou以外的字元
例如.是乙個元字元,那麼我就想去匹配點怎麼辦?在點前面加\即可
我們的字串中肯定會出現重複的字元需要匹配,那麼就用到我們的正則中的重複處理
元字元說明*重複0次或者或者更多次
+重複一次或更多次
?重複0次或者一次
重複n次
重複n次或者更多次
重複n次到m次
元字元說明*?
重複任意次,但盡可能少的重複
+?重複一次或者更多次,但盡可能少的重複
??重複0次或者一次,但盡可能少的重複
?重複n次到m次,但盡可能少的重複
?重複n次或者更多次,但盡可能少的重複
總之就是在這些後面加乙個問號可以進行懶惰匹配。一般沒有使用貪婪匹配的情況
元字元說明ignorecase(忽略大小寫)
匹配時不區分大小寫。
multiline(多行模式)
更改^和$的含義,使它們分別在任意一行的行首和行尾匹配,而不僅僅在整個字串的開頭和結尾匹配。(在此模式下,$的精確含意是:匹配\n之前的位置以及字串結束前的位置.)
singleline(單行模式)
更改.的含義,使它與每乙個字元匹配(包括換行符\n)。
ignorepatternwhitespace(忽略空白)
忽略表示式中的非轉義空白並啟用由#標記的注釋。
explicitcapture(顯式捕獲)
僅捕獲已被顯式命名的組。
這種選項不知道是否在任意的語言中都支援。
能看到這裡的都是比較有耐心的大哥了,這後面屬於一些正則的高階用法,內容也比較抽象,我用的也不是很好什麼是反向引用呢,我的理解就是重複使用前面定義好的分組,不用自己重新去寫了。
例如我寫了乙個 \b(\w)\b\s+\1\b ,這裡的\1的意思就是(\w)。
其實和零寬斷言相反,就是匹配不佔位的不是某種條件的情況
表示式歡迎關注我的個人部落格zenshin』blog說明^[0-9]*$
數字^\d$
n位數字
^\d$
至少n位數字
^[\u4e00-\u9fa5]$
漢字^\w+([-+.]\w+)*@\w+([-.]\w+)*.\w+([-.]\w+)*$
email位址
[a-za-z0-9][-a-za-z0-9](/.[a-za-z0-9][-a-za-z0-9])+/.?
網域名稱 這個我會持續補充,這裡不做太多的介紹。
正規表示式學習
概念 正規表示式,就是用某種模式去匹配一類字串的乙個公式。基礎 下表列出了所有的元字元和對它們的乙個簡短的描述。簡單例子 vi 命令作用 s g 把乙個或者多個空格替換為乙個空格 s 去掉行尾的所有空格 s 在每一行頭上加入乙個空格 s 0 9 0 9 去掉行首的所有數字字元 s b aeio g ...
正規表示式學習
1.元字元 1 匹配任何單個字元 2 匹配括號中的任何乙個字元 可以再括號中使用連字元 來指定子都的區間來簡化表示,如a 0123456789 c等價於a 0 9 c 3 將 之間括起來的表示式定義為 組 4 將兩個匹配條件進行邏輯 或 運算 z f ood則匹配 zood 或 food 5 匹配0...
正規表示式學習
只是點皮毛,先湊合用著了,順便鄙視一下sqlserver,居然不支援正則。b 元字元,代表著單詞的開頭或結尾,也就是單詞的分界處。d 數字 s 任意的空白符,包括空格,製表符 tab 換行符,中文全形空格等 w 字母或數字或下劃線或漢字等 匹配字串的開始 匹配字串的結束 轉義符 除換行符以外的任意字...