-1

2 つの {} の間の文字列を抽出する必要があります。たとえば、.split(正規表現)

{Regex is difficult.}fadsfjkaslfdjsa{Humbug}asfasdfjaskdlfjlkaf 

Regex is difficult.最初のエントリと 2 番目のエントリとして配列を返す必要がありHumbugます。

Javaでこれを行うには、どのように正規表現を作成しますか?

以下の回答を試しましたが、myString.split(regex) を使用したいと思います。私はおそらく私の答えでもっと具体的だったはずです。

これに .split() を使用する必要がありますか、それとも別の方法がありますか?

4

2 に答える 2

5
String regex = "\\{([^}]*)\\}"

\\{および\\}エスケープ{および}、それぞれ。の後に続くすべての文字
([^}]*)をキャプチャしますが、 は含みません。最後に、{}
\\}}

あるいは、貪欲ではないキャプチャ用語が機能し(.*?)ます。ただ、文字クラスの方が初心者には分かりやすいと思います。

編集:
内容を抽出するには、次のようにします。

Matcher m = Pattern.compile("\\{([^}]*)\\}").matcher(myString);

while (m.find()) 
{
     myArrayList.add(m.group(1)); 
}
于 2013-11-10T19:58:18.757 に答える
1

ネストされた構造を正規表現で処理することはできませんが (これによりdemonsが呼び出されます)、それらが 1 レベルしかない場合は、それらを次のように一致させることができます
\{(.*?)\}

正規表現は難しくありません。

于 2013-11-10T19:59:24.090 に答える