對以下正則表達式有相當麻煩。Java正則表達式問題:匹配函數體
String fktRegex ="public double " + a+ "2" + b + "(double value) {return value * (.*);}\n";
a和b是單獨插入的字符串。
正則表達式工作得很好,直到我想識別它的數字。這是(。*)部分... 任何幫助?會很高興!謝謝。
C.
對以下正則表達式有相當麻煩。Java正則表達式問題:匹配函數體
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");
}
您能否提供您正在搜索的文本的示例和已編譯的正則表達式的副本? – SlitCanvas
public double abc2xyz(double value){return value * 100000;} 但是datetype可以是任何基於數字的數據類型 顯然,該文本是一個java源文件。 不知道你編譯的正則表達式是什麼意思? – Chaoz77