0

次の正規表現でかなりの問題があります。

String fktRegex ="public double " + a+ "2" + b + "(double value) {return value * (.*);}\n";

a と b は、個別に挿入される文字列です。

正規表現は、番号も識別したいまでは問題なく機能します。それが (.*) の部分です... 本当に嬉しいです!ありがとう。

C.

4

1 に答える 1

2

あなたの例から判断すると、正規表現のメタ文字をいくつかエスケープする必要があると思う{ } ( ) *ので、正規表現はおそらくもっと似ているはずです

"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");
}
于 2013-06-23T14:40:33.790 に答える