正規表示式

2021-07-27 03:53:18 字數 2085 閱讀 9385

string 類中有個matches(string regx)方法,返回乙個布林型別的值;用來匹配已給字串是否與regx向匹配;

正規表示式用於操作字串資料。需要

通過一些特定的符號來體現,因此必須要掌握一些特殊符號。使用時要經常檢視api中string類中matches方法中的正規表示式符號

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

預定義字元類

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

\d數字:[0-9]

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

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

\s非空白字元:[^\s]

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

\w非單詞字元:[^\w]

邊界匹配器

^行的開頭

$行的結尾

\b單詞邊界

\b非單詞邊界

\a輸入的開頭

\g上乙個匹配的結尾

\z輸入的結尾,僅用於最後的結束符(如果有的話)

\z輸入的結尾

greedy 數量詞x?

x,一次或一次也沒有x*

x,零次或多次x+

x,一次或多次

xx,恰好 n 次

xx,至少 n 次

xx,至少 n 次,但是不超過 m 次

例子:反斜線字元 ('\') 用於引用轉義構造,如上表所定義的,同時還用於引用其他將被解釋為非轉義構造的字元。因此,表示式 \\ 與單個反斜線匹配,而 \:匹配第一位不能為0的5—15位的數字;

as?b:匹配a和b之間不存在s或只存在一次s的字串;as*b:s可以出現零次或者多次;as+b:s可以出現一次或者多次

2、切割

str.split(" +")遇到乙個空格或者是多個空格時切割

str.split("\\."): 遇到.時進行切割(注意第乙個\用來轉義第二個\,第二個\用來轉義.)

str.split((.)\\1+):表示遇到疊詞進行切割,例如遇到aaa,bbbbb時切割

3、替換

其實使用的就是string類中的repalceall()方法

str.repalceall("(.)\\1+","#"):將字串中的疊詞用乙個#號來代替

str.repalceall("(.)\\1+","$1"):將字串中的疊詞取消重複,變成乙個詞(其中$代表拿到前乙個正規表示式中的第一組拿過來)

str.repalceall("(\\d)\\d(\\d)","$1****$2"):將手機號中的中間四位隱藏起來

4、獲取

pattern p = pattern.compile("\\b[a-z]\\b");\\將正則規則進行物件封裝

matcher m = p.matcher("da jia hao jin tian bu fang jia");\\通過正則物件的matches方法組付出相關聯。獲取對字串操作的匹配器物件matcher

\\boolean b = m.matches();\\通過matcher匹配器物件的方法對字串進行操作

m.find();\\對匹配物件進行查詢,只有先查詢才能進行返回字串

m.group();\\返回匹配的字串

還可通過while(m.find())與str.replacefirst("regx",m.group)等操作聯合進行替換。

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...