的子只是想知道如果有一個更好的解決方案,這給一個字符串,如替換字符串中所有的正則表達式匹配與匹配
xDLMContent <matches> something <and> dSecurityGroup <contains> somethingelse <and> xDLMSomeOtherMetaDataField <matches> anothersomethingelse
它需要與
DLMContent <matches> something <and> SecurityGroup <contains> somethingelse <and> DLMSomeOtherMetaDataField <matches> anothersomethingelse
規則是元數據被替換字段以x或d開頭,接着是大寫字母,然後是一個或多個混合大小寫字母字符。
這裏是我的解決辦法,但我不知道是否有更好的東西
public static void main(String[] args) {
String s = "xDLMContent <matches> something <and> dSecurityGroup <contains> somethingelse <and> xDLMSomeOtherMetaDataField <matches> anothersomethingelse";
Pattern pattern = Pattern.compile("[dx][A-Z][a-zA-Z]+");
Matcher matcher = pattern.match(s);
while (matcher.find()) {
String orig = s.substring(matcher.start(), matcher.end());
String rep = s.substring(matcher.start() + 1, matcher.end());
s = s.replaceAll(orig, rep);
matcher = pattern.match(s);
}
System.out.println(s);
}
http://stackoverflow.com/questions/632204/java-string-更換replace-using-regular-expressions – Andreas