下面的代码将与240px
更换30px
字符串s
使用正则表达式:
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
并将其作为替换字符串传递。
- 最后,再次打印输入字符串,并替换某些字符串。
你是不是指'80px'? – kennytm 2012-07-08 10:08:55
是的。我编辑了我的问题,谢谢 – Dejell 2012-07-08 10:09:25
我认为如果将它解释为DOM并阅读属性会更好。 – 2012-07-08 10:13:08