0

[[text]]から値を取得するための正規表現。正規表現を試しました

  "((?<=[[)*(?=]])*)+"  the value between [[ ]] is not obtained.

たとえば、文字列[[text]]から、テキストを取得する必要があります。

Pattern pat = Pattern.compile("((?<=\\[[)*(?=\\]])*)");
Matcher matcher = pat.matcher("[[text]]");
String next ="";
while(matcher.find()) {
  next = matcher.group(0);
break;
}
System.out.println(next); //next should be text
4

3 に答える 3

2

[]正規表現で実際の文字として使用する場合は、角かっこをエスケープする必要があります。また、括弧の間にあるものを実際にキャプチャするために何かを追加する必要があります。.*値に。を含めることができないことが確実な場合は、そのために使用するか、私のアプローチを使用できます]

((?<=\[\[)([^\]]*)(?=\]\]))+

これらのリミッターを試合から明示的に免除する必要がない限り、ルックバックとルックアヘッドを使用する必要は実際にはありません。これも同様に機能します。

 \[\[([\]]*\]\]

そして明らかに、これらを文字列に入れるときは、文字列\のをエスケープする\ために追加を追加する必要があります...これらはこの方法でより読みやすくなります。

于 2013-03-04T15:55:45.420 に答える
1

入りたくない場合はregexString.replaceAllもお手伝いします。

String s2 = s.replaceAll("\\[", "").replaceAll("\\]", "");
于 2013-03-04T15:57:41.043 に答える
1
"(?<=\\[\\[)[^\\]]*"

これはあなたのために働くはずです

于 2013-03-04T15:57:50.487 に答える