6

私は文字列を持っています

String s="[[Identity (philosophy)|unique identity]]";

に解析する必要があります。

s1 = Identity_philosphy 
s2= unique identity

次のコードを試しました

Pattern p = Pattern.compile("(\\[\\[)(\\w*?\\s\\(\\w*?\\))(\\s*[|])\\w*(\\]\\])");
  Matcher m = p.matcher(s);
while(m.find())
{
....
}

でも柄が合わない…。

助けてください

ありがとう

4

2 に答える 2

1

使用する

String s="[[Identity (philosophy)|unique identity]]";
String[] results = s.replaceAll("^\\Q[[\\E|]]$", "")    // Delete double brackets at start/end
      .replaceAll("\\s+\\(([^()]*)\\)","_$1")           // Replace spaces and parens with _
       .split("\\Q|\\E");                               // Split with pipe
System.out.println(results[0]);
System.out.println(results[1]);

出力:

Identity_philosophy
unique identity
于 2020-06-04T19:42:57.637 に答える