gpt4 book ai didi

java正则表达式用{var}次{var}px替换{var}px

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:59:18 28 4
gpt4 key购买 nike

我有以下字符串:

<div height="40px" width="30px" />

我想用正则表达式替换所有后面有 px 的数字,并用 X 乘以它们的值。 (X 是一个变量)。

所以如果X=3,结果就是

<div height="120px" width="90px" />

请注意 X 必须是我将检索到函数的变量

最佳答案

以下代码将使用正则表达式将字符串 s 中的 30px 替换为 240px:

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Example {
public static void main(String[] args) {
String s = "abc 30px def";
int var = 8;

Pattern patt = Pattern.compile("([0-9]+)px");
Matcher m = patt.matcher(s);
StringBuffer sb = new StringBuffer(s.length());
while (m.find()) {
int px = Integer.parseInt(m.group(1));
String next = String.valueOf(var * px) + "px";
m.appendReplacement(sb, Matcher.quoteReplacement(next));
}
m.appendTail(sb);
System.out.println(sb.toString());
}
}

这是它执行的步骤:

  • 创建编译的正则表达式。当稍后再次使用正则表达式时,这会提高性能。
  • 在字符串 s 中搜索匹配项以及每个匹配项:
    • 将字符串转换为整数并乘以 var
    • 再次附加 px 并将其作为替换字符串传递。
  • 最后,替换掉某些字符串后再次打印输入字符串。

关于java正则表达式用{var}次{var}px替换{var}px,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11382293/

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