日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

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

生活随笔

當(dāng)前位置: 首頁(yè) >

Java——正则表达式

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

Java——正則表達(dá)式

近來(lái)學(xué)習(xí)到了正則表達(dá)式,在此整理以便理解。

1.定義:

正則表達(dá)式(regular expression)是一個(gè)字符串,可用于描述匹配一個(gè)字符串集合的模式,便于字符串的處理。可以使用正則表達(dá)式來(lái)進(jìn)行匹配、替換和拆分字符串。

2.匹配字符串:

String類(lèi)中的matches方法不僅可以匹配一個(gè)固定的字符串,還可以匹配符合一個(gè)模式的字符串集。

例如:(語(yǔ)句結(jié)果為true。)

其中“Java.*”即為正則表達(dá)式,它描述了一個(gè)字符串模式,即:以Java開(kāi)始后面跟0個(gè)或多個(gè)字符串,其中,子字符串“.*”匹配0個(gè)或多個(gè)任意字符。

3.正則表達(dá)式語(yǔ)法:

???????? 正則表達(dá)式由字面值字符及特殊符號(hào)所組成。下表中列舉出了正則表達(dá)式的常用的語(yǔ)法。

表1:正則表達(dá)式常用語(yǔ)法

?

正則表達(dá)式

匹配

1

x

指定字符x

2

.

任意單個(gè)字符,換行符除外

3

(ab|cd)

ab或者cd

4

[abc]

a、b、c

5

[^abc]

除了a、b或者c以外的任意字符

6

[a-z]

a到z

7

[^a-z]

除了a到z以外的任意字符

8

[a-e[m-p]]

a到e或m到p

9

[a-e&&[c-p]]

a到e與c到p的交集

10

\d

一位數(shù)字,等同于[0-9]

11

\D

一位非數(shù)字

12

\w

單詞字符

13

\W

非單詞字符

14

\s

空白字符

15

\S

非空白字符

16

p*

0次或者多次出現(xiàn)模式p

17

p+

1次或者多次出現(xiàn)模式p

18

p?

0次或者1次出現(xiàn)模式p

19

p{n}

正好出現(xiàn)n次模式p

20

p{n,}

至少出現(xiàn)n次模式p

21

p{n,m}

n到m(不包含)次出現(xiàn)模式p

22

\p{P}

一個(gè)標(biāo)點(diǎn)字符!”@#$%^&*()等

?

Ps1:反斜杠是一個(gè)特殊的字符,在字符串中開(kāi)始轉(zhuǎn)義序列。因此Java中需要使用\\來(lái)表示\。

Ps2:空白字符是" ""\t""\n""\r""\f",因此\s和[\t\n\r\f]等同,\S和[^\t\n\r\f]等同。

Ps3:單詞字符是任何的字母,數(shù)字或下劃線字符。因此\w等同于[a-z[A-Z][0-9]_]或者簡(jiǎn)化為[a-Za-z0-9]。

Ps4:可以使用括號(hào)來(lái)將模式進(jìn)行分組。例如:(ab){3}匹配ababab,而ab{3}匹配abbb。

Ps5:表1中后面的六個(gè)條目*、+、?、{n}、{n,}以及{n,m}稱為量詞符(quantifier),用于確定量詞符前面的模式會(huì)重復(fù)多少次。例如,A*匹配0或者多個(gè)A,A+匹配1或者多個(gè)A,A?匹配0或者1個(gè)A。A{3}精確匹配AAA,A{3,}至少匹配3個(gè)A,A{3,6}匹配3到6之間個(gè)A。*等同于{0,},+等同于{1,},?等同于{0,1}。

Warning:不要在重復(fù)量詞符中使用空白。例如,A{3,6}不能寫(xiě)成逗號(hào)后有一個(gè)空白符的A{3, 6}。

常用案例構(gòu)建正則表達(dá)式:

  • 電話號(hào)碼:以日常生活中的11位手機(jī)號(hào)為例
  • (xxx-xxxx-xxxx)

    2.QQ郵箱:以10位QQ號(hào)為例(xxxxxxxxxx@qq.com)

    參考資料:

    梁勇. Java語(yǔ)言程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)篇[M]. 北京:機(jī)械工業(yè)出版社,2018.167-175

    ?

    總結(jié)

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

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