我想在一個字符串,即在Java術語做兩個正則表達式替換用兩條正則表達式中的一個通
myString.replaceAll(pattern1, replacement1).replaceAll(pattern2, replacement2);
然而,假設myString
可能會很長,所以這將是希望避免做兩通過它。這可以一次完成嗎?
String pattern = ...;
String replacement = ...;
myString.replaceAll(pattern, replacement);
爲pattern
明顯的候選人是pattern1 + "|" + pattern2
,但我看不出怎麼寫replacement
。
爲了簡化,我們假設的pattern1
和pattern2
比賽不能相交,而replacement1
不引入任何新的pattern2
匹配。
正在做兩遍更換_actually_性能問題?這聽起來像是對我不成熟的優化。 – 2010-10-28 18:09:05
這更多的是我認爲很有趣的問題。我的情況很簡單,1)我可以避免它; 2)反正它不會是一個主要問題。 – 2010-10-28 18:26:22
只因爲你*可以*做到這並不意味着這是一個好主意。您可能會在不需要的地方增加複雜性。 – 2010-10-28 20:26:58