黑马程序员——Java正则表达式
生活随笔
收集整理的這篇文章主要介紹了
黑马程序员——Java正则表达式
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
正則表達(dá)式 兩類:Pattern模式類和Matcher匹配類 ? ? ? ? ? ? ? ?Pattern主要是用來(lái)編譯模型和生成匹配器matcher; 正則表達(dá)式基本方法 ? ?????????????//定義一個(gè)pattern,該pattern就是個(gè)f空兩個(gè)k的模式 ??????????Pattern p?=Pattern?.compile("f(.+?)(.+?)(.+?)k"?); ???????????//按照p的模式匹配字符串 ??????????Matcher m?=?p?.matcher?("qqfucogffAkfkkkkkf15fkjjfqfi")?; ???????????while(m?.find?()){ ????????????????????//無(wú)參group表示返回匹配到的子串 ???????????????????String s1?=m?.group?(); ????????????????????//表示第幾個(gè)括號(hào)的值,有幾括號(hào)就有幾個(gè)組~ ???????????????????String s2?=m?.group?(3)?; ????????????????????//end表示找到的該子串的結(jié)尾的之后索引值 ???????????????????System?.out.println(?s1+?">>>"+s2?+"||"?+m?.end?()); /*????????????????fucogffAk>>>ogffA||11 ????????????????????fkkkk>>>k||16 ???????????????????f15fk>>>f||22 */ ? 匹配日期,電話號(hào)碼,身份證格式,郵箱網(wǎng)站等等 ? ? ? ? ???//20世紀(jì)20年代 ??????????Pattern p2?=Pattern?.compile("(19)(2[0-9])"?); ??????????Matcher m2?=p2?.matcher?("192152519204201911924-5")?; ???????????while(m2?.find?()){ ???????????????????System?.out.println(?m2.?group()); ???????????} /*??????1921 ??????????1920 ??????????1924*/ 篩選日期 ? ? ? ? ? Pattern p4?=?Pattern?.compile?("(20)\\d\\d([- /.])(0[1-9]|1[012])\\2(0[1-9]|[12][0-9]|3[01])")?; ??????????Matcher m4?=?p4?.matcher?(?"2010-01-01 2007/08/13 1900.01.01 2009 01 01 1900-01.01 2000 02 31 1900 02 31")?; ???????????while?(?m4.?find?())?{ ???????????????????System?.?out.?println(?m4.?group?()); ???????????} /*??????2010-01-01 ??????????2007/08/13 ??????????2009 01 01 ??????????2000 02 31*/ 我國(guó)合法電話號(hào)碼 ? ? ? ? ? Pattern p3?=Pattern?.compile("(\\d{3}-\\d{8}|\\d{4}-\\d{7})"?); ??????????Matcher m3?=p3?.matcher?("021-55454445,41sbhfbh0755-6854555"); ???????????while(m3?.find?()){ ???????????????????System?.out.println(?m3.?group()); ???????????} /*??????021-55454445 ??????????0755-6854555*/ 將字符串中符合正則表達(dá)式的字串全部替換掉 ? ? ? ? ? String string?="qqfucogffAkfkkkkkf15fkjjfqfi"?; ??????????String str?=string?.replaceAll?("f(.+?)(.+?)(.+?)k",?"hello")?; ??????????System?.out.println(?string);????????? ??????????System?.out.println(?str); /*??????qqfucogffAkfkkkkkf15fkjjfqfi ? ? ? ? ? ?qqhellohellokhellojjfqfi*/ 正確書(shū)寫(xiě)正則表達(dá)式 預(yù)定義字符類 . 任何字符 \\d 數(shù)字:[0-9] \\D 非數(shù)字: [^0-9] \\s 空白字符:[ \t\n\x0B\f\r] \\S 非空白字符:[^\s] \\w 單詞字符:[a-zA-Z_0-9] \\W 非單詞字符:[^\w] 字符 \0n 帶有八進(jìn)制值 0 的字符 n (0 <= n <= 7) \0nn 帶有八進(jìn)制值 0 的字符 nn (0 <= n <= 7) \0mnn 帶有八進(jìn)制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7) \xhh 帶有十六進(jìn)制值 0x 的字符 hh \uhhhh 帶有十六進(jìn)制值 0x 的字符 hhhh \t 制表符 ('\u0009') \n 新行(換行)符 ('\u000A') \r 回車(chē)符 ('\u000D') \f 換頁(yè)符 ('\u000C') \a 報(bào)警 (bell) 符 ('\u0007') \e 轉(zhuǎn)義符 ('\u001B') \cx 對(duì)應(yīng)于 x 的控制符
轉(zhuǎn)載于:https://www.cnblogs.com/shuawang/p/3734778.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的黑马程序员——Java正则表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Lombok 安装、入门 - 消除冗长的
- 下一篇: linux下的mysql修改默认编码