求 String.replaceAll 特殊字符处理方法

问题描述:

有一字符串
select top ${fetchNum} * from tbl
想把其中的${fetchNum}替换成需要的数值,用replaceAll怎样实现

本来想自己从网上找找的但是搜索引擎也不喜欢${}啊

用java.util.regex.Pattern的quote()方法来把你要替换的字符串先整体转义一下就好,像这样:
[code="java"]import java.util.regex.Pattern;

public class Test {
public static void main(String[] args) {
String s = "select top ${fetchNum} * from tbl";
String escaped = Pattern.quote("${fetchNum}"); //=> "\Q${fetchNum}\E"
String replaced = s.replaceAll(escaped, "123");
}
}[/code]