使用以下正则表达式时遇到一些麻烦。
String fktRegex ="public double " + a+ "2" + b + "(double value) {return value * (.*);}\n";
a 和 b 是单独插入的字符串。
正则表达式工作得很好,直到我也想用它来识别数字。那是 (.*) 部分... 有什么帮助吗`真的会很高兴!谢谢。
C.
最佳答案
从你的例子来看,我认为你需要转义一些正则表达式元字符,例如 {
}
(
)
*
所以你的正则表达式应该看起来更像
"public double " + a + "2" + b + "\\(double value\\) \\{return value \\* (.*);\\}\n";
<小时/>
演示
// abc2xyz
String a = "abc";
String b = "xyz";
String fktRegex = "public double " + a + "2" + b + "\\(double value\\) \\{return value \\* (.*);\\}\n";
String data = "public double abc2xyz(double value) {return value * 100000;}\n";
Pattern p = Pattern.compile(fktRegex);
Matcher m = p.matcher(data);
if(m.find()){
System.out.println(m.group(1));
}else{
System.out.println("no match found");
}
关于Java正则表达式问题: Matching Function Body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17261591/