* 1.正規表示式:符合一定規則的表示式。
* 2.作用:用於專門操作字串。
* 3.特點:用一些特定的符號來表示一些**操作,這樣可以簡化書寫。 所以學習正規表示式,就是在學習一些特殊符號的使用。
* 4.好處:可以簡化對字串的複雜操作。
* 5.弊端:符號定義越多,正則越長,閱讀性越差。
* 1.匹配:boolean matches(string regex)
* 用規則匹配整個字串,只要有一處不符合規則,就匹配結束,返回false
* 2.切割:string split(string regex)
* 根據給定的正規表示式的匹配拆分此字串
*典型demo:
*(1)splitdemo("zs ls ww"," +");//按照多個空格來進行切割
*(2)splitdemo("zs.ls.ww","\\.");//按照 . 來進行切割
*(3)splitdemo("d:\\abc\\de","\\\\");//按照\\來進行切割
*(4)splitdemo("abcddefgkkkhi","(.)\\1+");//按照疊詞完成切割
* 3.替換:string replaceall(string regex, string replacement)
* 使用給定的 replacement 替換此字串所有匹配給定的正規表示式的子字串
*典型demo:
*(1)replacealldemo(str,"\\d","#");//將字串中的連續超過5個的數字替換成#
*(2)replacealldemo(str2,"(.)\\1+","*");//將疊詞替換成*
*(3)replacealldemo(str3,"(.)\\1+","$1");//將重疊的字元替換成單個字母,如:ddd變成d
* 4.獲取:將字串中符合規則的子串取出
*操作步驟:
*(1)將正規表示式封裝成物件;
*(2)讓正則物件和要操作的字串相關聯;
*(3)關聯後,獲取正則匹配引擎;
*(4)通過引擎對符合規則的子串進行操作,比如:取出
*典型demo:
* string str = "ming tian fang jia lea";
* string reg = "\\b[a-z]\\b";//"\b"表示單詞邊界
* pattern p = pattern.compile(reg);//將規則封裝成物件
* matcher m = p.matcher(str);//讓正則物件和要作用的字串相關聯,獲取匹配器物件
* //類似於迭代器
* while(m.find())
* 5.四種功能選用方式
* 思路:
*(1)如果只想知道該字元是對是錯,使用匹配;
*(2)想要將已有的字串變成另乙個字串,使用替換;
*(3)想要按照自定的方式將乙個字串變成多個字串,使用切割;(獲取規則以外的子串)
*(4)想要拿到符合需求的字串子串,使用獲取。(獲取符合規則的子串)
*1.匹配的應用
*(1)應用一:對qq號碼進行校驗 regex="[1-9]\\d";
*(2)應用二:對手機號段進行校驗 regex="1[358]\\d";
*(3)應用三:對郵件位址進行校驗
* regex="[a-za-z0-9_]+@[a-za-z0-9]+(\\.[a-za-z]+)";//較為精確的匹配
* regex="\\w+@\\w+(\\.\\w+)+";//相對不太精確的匹配
*2.替換的應用
* 將ip位址進行位址段順序的排序【必須掌握】
* 例如:192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2
* 思路:
* 按照字串自然順序,只要讓它們每一段都是3位即可。
*(1)按照每一段需要的最多的0進行補齊,那麼每一段就會至少保證有三位;
*(2)將每一段只保留三位,這樣,所有的ip位址都是每一段三位。
*3.獲取的應用
* 獲取指定文件中的郵件位址(網頁爬蟲)
*1.字元類
* [abc] a、b 或 c(簡單類)
* [^abc] 任何字元,除了a、b 或 c(否定)
* [a-za-z] a 到 z 或 a 到 z,兩頭的字母包括在內(範圍)
* [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](並集)
* [a-z&&[def]] d、e 或 f(交集)
* [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](減去)
* [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](減去)
*2.預定義字元類
* . 任何字元(與行結束符可能匹配也可能不匹配)
* \d 數字 [0-9]
* \d 非數字 [^0-9]
* \s 空白字元 [ \t\n\x0b\f\r]
* \s 非空白字元 [^\s]
* \w 單詞字元 [a-za-z_0-9]
* \w 非單詞字元 [^\w]
*3.greedy 數量詞
* x? x, 零次或一次
* x* x, 零次或多次
* x+ x, 一次或多次
* x x, 恰好 n 次
* x x, 至少 n 次
* x x, 至少 n 次,但是不超過 m 次
正規表示式知識點
re.match與re.search的區別 re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none 而re.search匹配整個字串,直到找到乙個匹配。flags 標誌位,用於控制正規表示式的匹配方式,如 是否區分大小寫,多行匹配等等 import re s 1...
正規表示式知識點
正則的知識點 1.建立例項 var reg new regexp pattern,flag d g 2.flag 識別符號 1.i 忽略大小寫匹配 2.m 多行匹配 3.g 全域性匹配 應用與所有,而不是找到第乙個就停止 3.第一段知識點 1.xyz xyz中任意乙個字元 等價於 x z 2.xyz...
正規表示式及知識點總結
match 字串用法 成功則返回值,錯誤則返回null var str 18229096120 str.match test 正則物件用法 成功則返回true,錯誤則返回false 宣告正則變數 var reg new regexp reg.test str 匹配字串的開頭,在多行檢索中,匹配一行的...