日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java 正则表达式的用法与实例

發(fā)布時(shí)間:2024/8/1 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 正则表达式的用法与实例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄結(jié)構(gòu)

  • 一、簡(jiǎn)介
  • 二、相關(guān)符號(hào)
    • 1)單個(gè)符號(hào)
    • 2)次數(shù)符號(hào)
    • 3)快捷字符
  • 三、常用的正則表達(dá)式
  • 四、正則表達(dá)式的常見(jiàn)操作
    • 1)匹配
    • 2)切割
    • 3)替換
    • 4)獲取
  • 五、郵箱格式驗(yàn)證實(shí)例
  • 六、正則表達(dá)式在線生成代碼工具

一、簡(jiǎn)介

正則表達(dá)式,又稱規(guī)則表達(dá)式(Regular Expression,在代碼中常簡(jiǎn)寫(xiě)為regex、regexp或RE)。描述了一種字符串匹配的模式(pattern),可以用來(lái)檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等。

二、相關(guān)符號(hào)

1)單個(gè)符號(hào)

符號(hào)用法與含義
^匹配輸入字符串開(kāi)始的位置
$匹配輸入字符串結(jié)尾的位置
.匹配單個(gè)任意字符,如Ja.a,可以匹配Java但不能匹配Javva
中括號(hào)[]匹配單個(gè)字符,但只能匹配括號(hào)中指定的字符,如ja[vr]a,jara合法
| 符號(hào)或,和中括號(hào)[]類似,匹配指定的字符,但可以不是單個(gè),如r(a|b|c|dd)n
^符號(hào)表示否,如[^0—9]即不匹配數(shù)字

2)次數(shù)符號(hào)

以下符號(hào)是匹配其前面的子表達(dá)式出現(xiàn)的次數(shù):

符號(hào)次數(shù)
*0次或者多次
+1次或者多次
?0次或者1次
{n}剛好n次
{n,}至少匹配n次
{n,m}n次到m次

舉個(gè)栗子:

o{2}"Bob"中的"o"不匹配,但與"food"中的兩個(gè)"o"匹配。 o{1,}等效于o+ o{0,}等效于o* o{0,1}'等效于 o?

3)快捷字符

符號(hào)含義
\d匹配一個(gè)數(shù)字字符,等價(jià)于 [0-9]
\D匹配一個(gè)非數(shù)字字符,等價(jià)于 [^0-9]
\w匹配字母、數(shù)字、下劃線,等價(jià)于[A-Za-z0-9_]
\W等價(jià)于[^A-Za-z0-9_]
\s空字符,只可以匹配一個(gè)空格、制表符、回車符、換頁(yè)符,不可以匹配自己輸入的多個(gè)空格
\S匹配任何非空白字符

更多字符可以參考菜鳥(niǎo)教程

三、常用的正則表達(dá)式

整理一些常見(jiàn)的正則表達(dá)式如下:

  • 漢字:^[\u4e00-\u9fa5]{0,}$
  • 長(zhǎng)度為3-20的所有字符:^.{3,20}$
  • Email地址:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
  • 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
  • InternetURL:[a-zA-z]+://[^\s]* 或 ^https://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?$
  • 手機(jī)號(hào)碼:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
  • IP地址:\d+.\d+.\d+.\d+
  • 中國(guó)郵政編碼:[1-9]\d{5}(?!\d)
  • 騰訊QQ號(hào):[1-9][0-9]{4,}

其余的表達(dá)式可以參考這里


四、正則表達(dá)式的常見(jiàn)操作

java中的正則表達(dá)式,建議多研究pattern類 和 matcher類

import java.util.regex.Matcher; import java.util.regex.Pattern;

1)匹配

方法:

  • public boolean matches(String regex)

舉例:

public static void checkQQ(){String qq = "123456789abc";String regex = "[1-9]\\d{4,14}";boolean flag = qq.matches(regex);if(flag)System.out.println(qq+"合規(guī)");elseSystem.out.println(qq+"不合規(guī)");} //不合規(guī)

2)切割

方法:

  • public String[] split(String regex)

舉例:

public static void splitTest(){String str = "摸 魚(yú) 寫(xiě) 博 客";//按照多個(gè)空格來(lái)進(jìn)行切割String reg = " +";String[] arr = str.split(reg); System.out.println(arr.length);//用加強(qiáng)for循環(huán)遍歷for(String s : arr){System.out.println(s);}}

3)替換

方法:

  • public String replaceAll(String regex,String replacement)
  • replaceFirst 替換首次匹配,replaceAll 替換所有匹配

舉例:

public static void replaceAllTest(){String str = "java123456Regular6543210Expression";//注意String regex = "\\d";和\\d{5,}的區(qū)別String regex = "\\d{5,}";str = str.replaceAll(regex,"#");System.out.println(str);} // java#Regular#Expression

4)獲取

方法:

  • 將正則表達(dá)式封裝成對(duì)象。
  • 讓正則對(duì)象和要操作的字符串相關(guān)聯(lián)。
  • 關(guān)聯(lián)后,獲取正則匹配引擎。
  • 通過(guò)引擎對(duì)符合規(guī)則的子串進(jìn)行操作,比如取出。

舉例:

public static void getTest(){String str = "mo yu xie bo ker";String regex = "\\b[a-z]{3}\\b";//匹配只有三個(gè)字母的單詞//將規(guī)則封裝成對(duì)象。Pattern p = Pattern.compile(regex);//讓正則對(duì)象和要作用的字符串相關(guān)聯(lián)。獲取匹配器對(duì)象。Matcher m = p.matcher(str);//將規(guī)則作用到字符串上,并進(jìn)行符合規(guī)則的子串查找。boolean b = m.find();while(b){//獲取匹配后結(jié)果。System.out.println(m.group());// start() 字符的開(kāi)始下標(biāo)(包含)//end() 字符的結(jié)束下標(biāo)(不包含)System.out.println(m.start()+"...."+m.end()); }}

五、郵箱格式驗(yàn)證實(shí)例

以常見(jiàn)的郵箱格式為例:

  • 由a~z的英文字母(不區(qū)分大小寫(xiě))開(kāi)頭
  • 可由英文字母、0~9的數(shù)字、點(diǎn)、減號(hào)或下劃線組成
  • @左側(cè)長(zhǎng)度為1~20個(gè)字符
  • 不能以點(diǎn)、減號(hào)結(jié)尾

代碼實(shí)現(xiàn):

public static boolean isValidEmail(String email) {if ((email != null) && (!email.isEmpty())) {//定義郵箱格式的正則表達(dá)式String regex = "^(\w+([-.][A-Za-z0-9]+)*){1,20}@\w+([-.][A-Za-z0-9]+)*\.\w+([-.][A-Za-z0-9]+)*$";//返回格式驗(yàn)證結(jié)果return Pattern.matches(regex, email);}return false;}

六、正則表達(dá)式在線生成代碼工具


懶人直接走這兒:正則表達(dá)式在線生成代碼工具



寫(xiě)完剛好五點(diǎn)半,下班了伙計(jì)們!

總結(jié)

以上是生活随笔為你收集整理的Java 正则表达式的用法与实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。