gpt4 book ai didi

java - 以编程方式用 Java 替换 JavaScript 方法

转载 作者:行者123 更新时间:2023-12-01 18:59:16 26 4
gpt4 key购买 nike

我需要使用 Java 来替换文件中的一些 JavaScript。我采取的步骤基本上是这样的:

  1. 读入文件(这是一个从另一个系统生成的包含 JavaScript 的 .asp 文件)
  2. 将不需要的 JavaScript 函数替换为我想要的函数
  3. 将其写回原来生成的文件

我在执行第 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);

我遇到的问题是我想要替换的字符串被解释为正则表达式(它只是文字文本,但它当然被解释为正则表达式)并且它对我有帮助。不幸的是,我无法找到正确的语法来正确转义特殊字符并仍然使其符合我想要的方式。

有什么想法吗?

谢谢!

最佳答案

您可以在匹配模式周围使用引号运算符:

private static final String METHOD_TO_REPLACE =
"\\Q" +
"function sayHi() {\n" +
" alert('hi');\n" +
"}" +
"\\E";

顺便说一下,

function sayHi() {
alert("Hello, World!");
}

在 Java 中不起作用。您可能想要:

void sayHi() {
alert("Hello, World!");
}

关于java - 以编程方式用 Java 替换 JavaScript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12848638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com