-1

以下の文字列をJAVAの正規表現で配列に分割したいのですが、やり方がわかりません。

string1="advmod(likes-4, also-3)"  ==>    advmod, likes, also
string2="nsubj(likes-4, dog24-2)"  ==>    bsubj, likes, dog24
string3="num(dog24-3, 8-2)"        ==>    num, dog24, 8

この仕事を手伝ってください。"num(dog24-3, 8-2)"のような文字列をnumdog24、および8の 3 つのトークンに分割し、それらを文字列配列に配置する方法。

どうもありがとう。

4

4 に答える 4

1

分割したい場合は、これを使用できます:

str.split("\\(|-[0-9]+(?:,\\s+|\\))");

イデオネデモ

于 2013-09-15T14:22:05.193 に答える
1

3弦用

  String re1="(num)";   // Word 1
    String re2=".*?";   // Non-greedy match on filler
    String re3="(dog24)";   // Alphanum 1
    String re4=".*?";   // Non-greedy match on filler
    String re5="(8)";   // Integer Number 1

    Pattern p = Pattern.compile(re1+re2+re3+re4+re5,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    Matcher m = p.matcher(txt);
    if (m.find())
    {
        String word1=m.group(1);
        String alphanum1=m.group(2);
        String int1=m.group(3);
        System.out.print("("+word1.toString()+")"+"("+alphanum1.toString()+")"+"("+int1.toString()+")"+"\n");
    }
于 2013-09-15T14:08:55.703 に答える