-4

文字列から値を取得するのに問題があります。;入力はありますが、特殊文字で区切られていることがわかっているだけで、形式はありません。

test?test; 1231@test;name=vonnegut

この入力を特定の特殊文字で分割し、 のような別の特殊文字を含む結果を見つけたいと思い=ます。

この結果:name=vonnegut

4

3 に答える 3

1

これを試すことができます

[^;]+=[^;]+

ここでRegexrを参照してください

[^;]+は、セミコロンではない一連の文字 (+少なくとも 1 つを意味する) に一致する否定文字クラスです (改行文字にも一致するため、文字列にそれらが含まれている場合は注意してください。その後、それらをクラスに追加する必要があります[^;\r\n]) 。

于 2012-10-11T08:21:10.897 に答える
1

文字列の split() メソッドを見てください。それはまさにあなたが望むことをするはずです。

「;」で分割 最初に、次に結果の文字列の "=" で。

于 2012-10-11T07:59:04.467 に答える
0
String input = "test?test; 1231@test;name=vonnegut";
String[] splittedInput = input.split(",");
for (String str:splittedInput) {
  System.out.println(str);
}

あなたにあげる

test?test
1231@test
name=vonnegut

これで、次の文字の個々の文字列をテストできます。たとえば、次のようになります。

for (String str:splittedInput) {
  if (str.contains("=") {
    System.out.println(str);
  }
}

正規表現検索を直接行うこともできます。私はそれを調べる必要があります(正規表現を頻繁に使用しないでください)が、それは簡単に理解できます。おそらく、正しい正規表現を含む回答が既に存在します... ;)

于 2012-10-11T08:05:02.240 に答える