我需要使用 Java 替换文件中的一些 JavaScript。我正在采取的步骤基本上是这样的:
- 读入一个文件(它是一个 .asp 文件,其中包含从另一个系统生成的 JavaScript)
- 用我想要的替换不需要的 JavaScript 函数
- 将其写回最初生成的文件
我在执行第 2 步时遇到了问题,因为我的代码似乎对 replaceAll 方法感到异常。假设我要替换此方法:
function sayHi() {
alert('hi');
}
...有这样的事情:
function sayHi() {
alert("Hello, World!");
}
我的代码如下所示:
private static final String REPLACEMENT_METHOD =
"function sayHi() {\n" +
" alert('Hello, World!');\n" +
"}";
private static final String METHOD_TO_REPLACE =
"function sayHi() {\n" +
" alert('hi');\n" +
"}";
String content = // Get the contents from the file...
content = content.replaceAll(METHOD_TO_REPLACE, REPLACEMENT_METHOD);
我遇到的问题是我要替换的字符串被解释为正则表达式(它只是文字文本,但它当然被解释为正则表达式)并且它对我很不利。不幸的是,我无法找到正确的语法来正确转义特殊字符,并且仍然可以让它以我想要的方式匹配。
有任何想法吗?
谢谢!