最近做一專案 要求特定字串的替換,以前做時用的是split() 分割,然後迴圈 加上的,但是後來發現這樣對資料的要求度比較高,不能存在 分割字元,所以才用了正則,案例如下:
string str1="1973.07--1977.09 某@某省某$某縣某某鎮%小學#教師。1977.09--1979.09 某某省&某某縣某某&鎮初中教師。1988.11--1993 某某省某某市委宣傳部幹事、副科級、科長(1987.09--今 在某某大學某某系某某專業學習)。";要替換此字串中的 日期格式i 為2023年07月
matcher matcher = pattern.compile("\\d.\\d").matcher(str1); //用正則匹配日期格式 1973.08 或1973.8
stringbuffer sbr = new stringbuffer();
while(matcher.find())
方法替換原有的}
str1=sbr.tostring().replaceall("--","至").replaceall("<", "(").replaceall(">",")").replaceall(" ", "").replaceall(" ","").replaceall("[&$#@%]", "");
system.out.println(str1);
行了 大功告成!!! 至於正規表示式的一些規則如下:
1.匹配字串用 (str)
2.匹配次數
3.匹配範圍 [a-z]
4.匹配情況 x|y
需要記匹配項
\b 空字元邊界
\b 非空的字元邊界
\d 數字
\d 非數字
\s 空字串
\s 非空字串
具體參考:
正規表示式 正規表示式 總結
非負整數 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...
正規表示式應用
d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d 非正浮點數 負浮點數 0 0 9 0 ...
正規表示式(應用)
在此頁面寫正規表示式,可以提供參考,和進行校驗 應用於前端 匹配任意長度的大小寫字母與數字 a za z0 9 匹配任意長度且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字與漢字 a za z0...