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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

黑马程序员——11 正则表达式

發布時間:2024/6/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黑马程序员——11 正则表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------

正則表達式

一、概念

符合一定規則的表達式,用于專門操作字符串,可以簡化對字符串的復雜操作,主要用于一些特定的符號來表示一些代碼操作。

二、常見符號

2.1字符

x????????????????? 字符 x

\\???????????????? 反斜線字符

\t???????????????? 制表符 ('\u0009')

\n???????????????? 新行(換行)符 ('\u000A')

\r???????????????? 回車符 ('\u000D')

\f???????????????? 換頁符 ('\u000C')

\a???????????????? 報警 (bell) 符 ('\u0007')

2、字符類

[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](減去)

3、預定義字符類

.???????????????????????? 任何字符(與行結束符可能匹配也可能不匹配)

\d??????????????????????? 數字:[0-9]

\D?????????????????????? 非數字: [^0-9]

\s??????????????????????? 空白字符:[ \t\n\x0B\f\r]

\S?????????????????????? 非空白字符:[^\s]

\w?????????????????????? 單詞字符:[a-zA-Z_0-9]

\W????????????????????? 非單詞字符:[^\w]

4、邊界匹配器

^???????????????????????? 行的開頭

$???????????????????????? 行的結尾

\b??????????????????????? 單詞邊界

\B?????????????????????? 非單詞邊界

\A?????????????????????? 輸入的開頭

\G?????????????????????? 上一個匹配的結尾

\Z?????????????????????? 輸入的結尾,僅用于最后的結束符(如果有的話)

\z??????????????????????? 輸入的結尾

5、Greedy數量詞

X??????????????????????? X,一次或一次也沒有

X*?????????????????????? X,零次或多次

X+?????????????????????? X,一次或多次

X{n}??????????????????? X,恰好 n次

X{n,}?????????????????? X,至少 n次

X{n,m}??????????????? X,至少 n次,但是不超過 m 次

6、組和捕獲

捕獲組可以通過從左到右計算其開括號來編號。例如,在表達式 ((A)(B(C)))中,存在四個這樣的組:

??????????????????? 1???? ((A)(B(C)))

??????????????????? 2???? \A

??????????????????? 3???? (B(C))

??????????????????? 4???? (C)

組零始終代表整個表達式。在替換中常用$匹配組的內容。

切割:利用String類中的String[]? sqlit(String? regex)方法來切割字符串

說明:

??????? 按疊詞完成切割:為了讓規則被重用,可將規則封裝成一個組,用()完成。組的出現都有編號,從1開始。想要使用已有的組可通過\n(n就是組的編號)的形式來獲取。

??????? 對于組中所匹配的字符,可以用$n來獲取。$在正則中表示行的結尾,所以出現在正則中不能用來表示組,一般用于替換中。如下面功能中。

三、替換: String replaceAll(String regex,String replacement)方法。

四、獲取:將字符串中的符合規則的子串取出。

操作步驟:

(1)將正則表達式封裝成對象。

??????? (2)讓正則對象和要操作的字符串相關聯。

??????? (3)關聯后,獲取正則匹配引擎。

??????? (4)通過引擎對符合規則的子串進行操作,比如取出。

五、四種功能的選擇(思路方式):

??????? (1)如果只想知道該字符是否對是錯,使用匹配。

??????? (2)想要將已有的字符串變成另一個字符串,替換。

??????? (3)想要按照自定的方式將字符串變成多個字符串。切割。獲取規則以外的子串。

??????? (4)想要拿到符合需求的字符串子串,獲取。獲取符合規則的子串。

轉載于:https://www.cnblogs.com/kvietaword/p/4535787.html

總結

以上是生活随笔為你收集整理的黑马程序员——11 正则表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

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