• 沒有找到結果。

定義規則表示式

在文檔中 通用 (頁 47-68)

• 若有個 Java 字串是“ Justin+Monica+Irene”,

想使用 split() 方法依 + 切割

– 使用的規則表示式是 \+

– 要將 \+ 放至 "" 之間時,按照 Java 字串的規定,

必忽略 \+ 的 \ ,所以必須撰寫為 "\\+"

簡介規則表示式

簡介規則表示式

• 想使用 split() 方法依 || 切割,要使用的 規則表示式是 \|\| ,要將 \|\| 放至 "" 之 間時,按照 Java 字串規定必須忽略 \| 的 \

,就必須撰寫為 "\\|\\|"

簡介規則表示式

• 如果有個字串是“ Justin\\Monica\\Irene”,也 就是原始文字是 Justin\Monica\Irene 以 Java 字串表示

• 若想使用 split() 方法依 \ 切割,要使用 的規則表示式是 \\ ,那就得如下撰寫:

簡介規則表示式

• 規則表示式中,多個字元可以歸類在一起,

成為一個字元類( Character class )

• 字元類會比對文字中是否有「任一個」字元 符合字元類中某個字元

• 規則表示式中被放在 [] 中的字元就成為一 個字元類

簡介規則表示式

• 想要依 1 或 2 或 3 切割字串:

簡介規則表示式

簡介規則表示式

• 如果想使用者輸入的手機號碼格式是否為 XXXX-XXXXXXX ,其中 X 為數字,規則 表示式可以使

用 \d\d\d\d-\d\d\d\d\d\d

• 不過更簡單的寫法是 \d{4}-\d{6}

簡介規則表示式

• 看到貪婪量詞時,比對器( Matcher )會把 剩餘文字整個吃掉,再逐步吐出( back-of

f )文字,看看是否符合貪婪量詞後的規則表 示式,如果吐出部份符合,而吃下部份也符 合貪婪量詞就比對成功

• 貪婪量詞會儘可能找出長度最長的符合文字

簡介規則表示式

• 文字 xfooxxxxxxfoo ,使用規則表示 式 .*foo 比對

– 比對器會先吃掉整個 xfooxxxxxxfoo ,再吐出 foo 符合 foo 部份,剩下的 xfooxxxxxx 也符合 .* 部

• 得到的符合字串就是整個 xfooxxxxxxfoo

簡介規則表示式

• 如果在貪婪量詞表示法後加上 ? ,將會成為 逐步量詞( Reluctant quantifier )

• 比對器看到逐步量詞時,會一邊吃掉剩餘文 字,一邊看看吃下的文字是否符合規則表示 式

• 逐步量詞會儘可能找出長度最短的符合文字

簡介規則表示式

• 文字 xfooxxxxxxfoo 若用規則表示式 .*?foo 比對

– 比對器在吃掉 xfoo 後發現符合 *?foo ,接著繼 續吃掉 xxxxxxfoo 發現符合

• 得到 xfoo 與 xxxxxxfoo 兩個符合文字

簡介規則表示式

• 如果在貪婪量詞表示法後加上 + ,將會成為 獨吐量詞( Possessive quantifier )

• 比對器看到獨吐量詞時,會先將剩餘文字全 部吃掉,然後看看獨吐量詞部份是否可符合 吃下的文字,如果符合就不會再吐出來了

簡介規則表示式

• 文字 xfooxxxxxxfoo ,若使用規則表示 式 .*+foo 比對

– 比對器會先吃掉整個 xfooxxxxxxfoo ,結果 .*+

就可以符合 xfooxxxxxxfoo 了,所以比對器就不 會再吐出文字

• 因為沒有剩餘文字符合 foo 部份,所以結果 就是沒有任何文字符合

簡介規則表示式

簡介規則表示式

• 可以使用 \b 標出單字邊界,例如 \bdog\b

,這就只會比對出 dog 單字

簡介規則表示式

簡介規則表示式

• 可以使用 () 來將規則表示式分組,除了作 為子規則表示式之外,還可以搭配量詞使用

• 驗證電子郵件格式, @ 後網域名稱可以有數 層,必須是大小寫英文字元或數字,規則表 示式可以寫為 ([a-zA-Z0-9]+\.)+

簡介規則表示式

簡介規則表示式

• 分組回頭參考時,是在 \ 後加上分組計數,

表示參考第幾個分組的比對結果

• \d\d 要求比對兩個數字, (\d\d)\1 的話

,表示要輸入四個數字,輸入的前兩個數字 與後兩個數字必須相同

簡介規則表示式

• [“‘][^”’]* [“‘] 比對單引號或雙引號中 0 或多個字元,但沒有比對兩個都要是單引 號或雙引號

• (["'])[^"']*\1 則比對出前後引號必須 一致

在文檔中 通用 (頁 47-68)

相關文件