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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java规则表达式_Java基础--正则表达式的规则

發布時間:2023/12/3 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java规则表达式_Java基础--正则表达式的规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注意:正則表達式只關注格式是否正確,不關注內容是否有效。

一、字符集合, []表示一個字符。

1、[abc] :指a,b,c中的任意一個字符。

2、[^abc]:指除了a,b,c外的任意字符。

3、[a-z]:表示a到z間的任意一個字符。

4、[a-zA-Z0-9]:表示a到z,A到Z,0到9的任意一個字符。

5、[a-z&&[^bc]]:等價于[ad-z],指a到z間除了b,c字符的任意字符。

二、預定義字符集* ( . )表示任意一個字符。

1、\d : 數字字符集,相當于[0-9],

2、\w:單詞字符集,相當于[a-zA-Z0-9_]。

3、\s:空白字符集,相當于[\t\n\f\r\xoB]。

4、\D:非\d

5、\W:非\w

6、\S:非\s

三、數量詞

1、?表示0個或一個。

2、* 表示0個或無窮個。

3、+ 表示1個或無窮個。

4、{n}表示n個。

5、{n, }表示n個到無窮個。

6、{n, m }表示n個到m個(m>n)。

7、() 表示一個整體。比如:(\+86)就是表示+86,此時+需要轉義。

8、^在[]中表示非,而放在[]外,表示以……開頭。比如^[0-9]就是以數字0-9開頭。

9、$表示以……結尾,比如[0-9]$就是指以數字0-9結尾。

四、java的String中正則表達式寫法(轉義的問題)

1、11位手機號正則表達式: "^[0-9]{11}$" ;

2、郵箱正則表達式:"^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9])+$" ;此時若使用String regex = " [a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z0-9])+ "; 由于java字符串認為 ( . ) 不需要進行轉義,所以寫成 ( \. )會報錯,需要對 \ 進行轉義, 即寫成 ( \\. )

3、簡單的日期表達式:"^\\d{4}(\\-|\\/|\\.)\\d{1,2}\\1\\d{1,2}$"? ;??\1表示匹配第一個小括號的內容,即(\-|\/|\.)

1 public classTest {2 public static voidmain(String[] args) {3 String regexDemo1 = "^\\d{4}(\\-|\\/|\\.)\\d{1,2}\\1\\d{1,2}$";4 String str = "2019.05.22";5 System.out.println(str.matches(regexDemo1)); //返回true6

7 //regexDemo1等價于regexDemo2。 其 \1 指的即為第一個小括號(), 即 \1 指的是 (\-|\/|\.)

8 String regexDemo2 = "^\\d{4}(\\-|\\/|\\.)\\d{1,2}(\\-|\\/|\\.)\\d{1,2}$";9 System.out.println(str.matches(regexDemo2)); //返回true

10 }11 }

五、字符串的替換與分解(使用正則表達式)

1、public boolean matches(String regex);判斷當前字符串對象是否與參數regex格式相匹配。

2、public String replaceAll(String regex, String replacement);將字符串中符合regex格式的子串替換成replacement,此時并未改變原始字符串。

3、public String[] split(String regex); 將字符串使用regex標記分割,并將分割后的單詞存入字符串數組中。

1 public classTest {2 public static voidmain(String[] args) {3 String regex = "[0-9]+";4 String str = "hello123world123";5 System.out.println("原始字符串為: " + str);//輸出hello123world123

6

7 System.out.println("替換字符串后為: " +str.replaceAll(regex, " welcome ")); //輸出hello welcome world welcome

8 System.out.println("原字符串不變:" + str); //不會改變原來的字符串,輸出為hello123world123

9

10 System.out.println("輸出切割后的字符串: ");11 String digitWord[] = str.split(regex); //以regex格式分割

12 for(String s : digitWord) {13 System.out.println(s);14 }15 }16 }17 /*

18 測試結果為:19 原始字符串為: hello123world12320 替換字符串后為: hello welcome world welcome21 原字符串不變:hello123world12322 輸出切割后的字符串:23 hello24 world25 */

總結

以上是生活随笔為你收集整理的java规则表达式_Java基础--正则表达式的规则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。