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