Java正規表示式

2021-05-22 23:49:43 字數 3870 閱讀 5755

正規表示式結構簡介:

字元:x   字元 x

//  反斜槓

/0n     十進位制數 (0 <= n <= 7)

/0nn    十進位制數 0nn (0 <= n <= 7)

/0mnn   十進位制數 0mnn (0 <= m <= 3, 0 <= n <= 7)

/xhh    十六進製制數 0xhh

/uhhhh  十六進製制數 0xhhhh

/t  製表符 ('/u0009')

/n  換行符 ('/u000a')

/r  回車符 ('/u000d')

/f  the form-feed character ('/u000c')

/a  the alert (bell) character ('/u0007')

/e  esc符號 ('/u001b')

/cx     x 對應的控制符

字元類[abc]       a, b, 或 c (簡單字串)

[^abc]      除了 a, b, 或 c 之外的任意字元(否定)

[a-za-z]    從a 到 z 或 從a 到 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](子集)

預定義字串行

.   任意字元 (也可能不包括行結束符)

/d  數字: [0-9]

/d  非數字: [^0-9]

/s  空字元: [ /t/n/x0b/f/r]

/s  非空字元: [^/s]

/w  單字字元: [a-za-z_0-9]

/w  非單字字元: [^/w]

posix 字元類 (us-ascii only)

/p   小寫字母字元: [a-z]

/p   大寫字母字元:[a-z]

/p   所有 ascii:[/x00-/x7f]

/p   單個字母字元:[/p/p]

/p   十進位制數: [0-9]

/p   單個字元:[/p/p]

/p   標點符號: 包括 !"#$%&'()*+,-./:;<=>?@[/]^_`~

/p   可視字元: [/p/p]

/p   可列印字元: [/p]

/p   空格或製表符: [ /t]

/p   控制字元: [/x00-/x1f/x7f]

/p  十六進製制數: [0-9a-fa-f]

/p   空字元: [ /t/n/x0b/f/r]

unicode 字元類

/p     希臘語種的字元 (****** block)

/p      大寫字母 (****** category)

/p      貨幣符號

/p     除希臘語種字元外的任意字元 (negation)

[/p&&[^/p]]  除大寫字母外的任意字元 (subtraction)

邊界匹配器

^   一行的開始

$   一行的結束

/b  單詞邊界

/b  非單詞邊界

/a  輸入的開始

/g  當前匹配的結束

/z  the end of the input but for the final terminator, if any

/z  輸入的結束

greedy quantifiers

貪婪匹配量詞 (greedy quantifiers )(不知道翻譯的對不對)

x?          x不出現或出現一次

x*          x不出現或出現多次

x+          x至少出現一次

x        x出現n次

x       x至少出現n次

x      x至少出現n次,但不會超過m次

reluctant quantifiers

x??         x, 不出現或出現一次

x*?         x, 不出現或出現多次

x+?         x, 至少出現一次

x?       x, 出現n次

x?      x, 至少出現n次 

x?     x, 至少出現n次,但不會超過m次

possessive quantifiers

x?+     x, 不出現或出現一次

x*+         x, 不出現或出現多次

x++         x, 至少出現一次

x+       x, 出現n次

x+      x, 至少出現n次 

x+     x, 至少出現n次,但不會超過m次

邏輯運算子

xy  y跟在x後面

x|y     x 或 y

(x)     x, as a capturing group

反向 引用

/n  whatever the nth capturing group matched

quotation

/   引用後面的字元

/q  引用所有的字元直到 /e 出現

/e  結束以 /q 開始的引用

special constructs (non-capturing)

(?:x)           x, as a non-capturing group

(?idmsux-idmsux)    匹配標誌開關

(?idmsux-idmsux:x)      x, as a non-capturing group with the given flags on

- off

(?=x)           x, via zero-width positive lookahead

(?!x)           x, via zero-width negative lookahead

(?<=x)          x, via zero-width positive lookbehind

(?x)           x, as an independent, non-capturing group

backslashes, escapes, and quoting

反斜槓字元('/')用來轉義,就 像上面的表中定義的那樣,如果不這樣做的話可能會產生

歧義。因此,表示式//匹配

單個反斜槓,表示式/將會匹配,

而/p將不會匹配。塊通 過字首in指定,作為在nmongolian之中。

分類通過任意的字首is指定: /p 和 /p 都引用 unicode 字母。塊和分類可以

被使用在字元類的內部或外部。

the unicode standard, version 3.0 指出了支援的塊和分類。塊的名字在第14章和 unicode character

database中的 blocks-3.txt 檔案定義,

但空格被剔除了。例如basic latin"變成了  "basiclatin"。分類的名字被定義在88頁

,表4-5。

comparison to perl 5

pattern 類不支援的perl構造:

條件構造    (?) 和 (?(condition)x|y),

嵌入**構造    (?) 和 (??),

嵌入注釋語法    (?#comment), 和

操作預處理   /l /u, /l, and /u.

Java正規表示式

方便查詢的東西 基本語法 轉義字元 in d d d 數字0 9 多少到多少 d 非數字 0 9 非 w 單詞字元 a za z0 9 a3 w 非單詞字元 w s 空白 如 n t 0 1次 1 n次 0 n次 必須是n次 大於等於n次 n demo 中文 u0391 uffe5 英文 a za ...

Java正規表示式

舉例說明 the 開頭一定要有 the 字串 of despair 結尾一定要有 of despair 的字串 那麼,abc 就是要求以abc開頭和以abc結尾的字串,實際上是只有abc匹配。notice 匹配包含notice的字串。你可以看見如果你沒有用我們提到的兩個字元 最後乙個例子 就是說 模...

JAVA 正規表示式

size 12px 1。d 匹配非負整數 正整數 0 2。0 9 1 9 0 9 匹配正整數 3。d 0 匹配非正整數 負整數 0 4。0 9 1 9 0 9 匹配負整數 5。d 匹配整數 6。d d 匹配非負浮點數 正浮點數 0 7。0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 ...