1
我正在編寫一個Java程序來計算一個人的平均工資,並在模板中打印每月扣除額。模板是這樣的:我應該爲以下模板使用哪種正則表達式?
==============BILL==============
| NAME: xXxX BRANCH : xxx |
| |
| Month 1 : xxx.xxx |
| Month 2 : xxxx.xx |
| <other Months> |
| Month 12 : xxx.xx |
| |
| TOTAL : ____________ |
================================
我使用下面的模式,試圖捕捉元素:
//template is stored in string.
String[] lines = msg.split("\n");
Pattern p = Pattern.compile("[xX\\._]+");
for(String line : lines){
Matcher m = p.matcher(line);
if(m.find()){
System.out.println(m.group());
}
else{
System.out.println("no match found...");
}
}
我得到的輸出是這樣的:
xXxX
xxx.xxx
xxxx.xx
xxx.xx
____________
但是,我無法匹配BRANCH的'xxx'。我如何提取該模式?
謝謝!只是一個小問題 - 如何替換這些匹配的令牌?我對RegEx比較新,所以請原諒我,如果我聽起來容易受騙 –
'stringToAlter.replace(m.group(),「WhateverAlterContent」)'; – Antoniossss
以下是正確的方法嗎?對於(...){ if(line [i] .contains(「somePattern」)){[i] = line [i] .replace(m.group(),「myReplacement」); } } –