正規表示式

2021-10-07 05:36:10 字數 1494 閱讀 7205

需求:現在有一段這樣的字串:

…,「categoryversion」:「分類版本的值」,「code」:「120002012」,「codeid」:「621355590078」,…

需要從中提取出code的值==>120002012, 通過下面的**可以將code值拿到:

public

static

void

main

(string[

] args)

}

result: 120002012

貪婪與非貪婪 (在於 ? 符號)

pattern.compile("「code」:"(\s+?)",")是非貪婪匹配(也叫懶惰匹配),result為 120002012

pattern.compile("「code」:"(\s+)",")是貪婪匹配,result為 120002012",「codeid」:"621355590078

matcher.group用法,group是針對 () 來說的

group(0) 匹配整個字串,上面如果用group(0),得到的result將是 「code」:「120002012」,

group(1) 匹配第乙個括號裡面的內容

如果一段字串中有多個 code 需要獲取,那麼遍歷matcher.find()就會拿到多個值,如下:

/**

* @param str

* @return

*/public

static list

getcodelist

(string str)

return codelist;

}

字串替換

替換字串中以某字串開頭,並以某字串結尾的字串

需求:現在有一段這樣的字串

…,「submittime」:「提報時間的值」,「uuid」:「9083472234512124」,「version」:「主資料版本的值」,…

要將 「uuid」:「9083472234512124」, 這一段字串從這段字串中剔除

//使用\\s*?進行正則匹配

string str =

"\"submittime\":\"提報時間的值\",\"uuid\":\"9083472234512124\",\"version\":\"主資料版本的值\","

;string result = str.

replacefirst

("\"uuid\":\"\\s*?\",",""

);

result結果為 「submittime」:「提報時間的值」,「version」:「主資料版本的值」,

不熟悉正則,這兩天用到上面這兩個方法,用起來挺方便,後續有用到的會再繼續更新。抽時間一定要把正則好好學一下。

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

非負整數 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正規表示式 編寫正規表示式

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