文字列から値を取得するのに問題があります。;
入力はありますが、特殊文字で区切られていることがわかっているだけで、形式はありません。
test?test; 1231@test;name=vonnegut
この入力を特定の特殊文字で分割し、 のような別の特殊文字を含む結果を見つけたいと思い=
ます。
この結果:name=vonnegut
これを試すことができます
[^;]+=[^;]+
ここでRegexrを参照してください
[^;]+
は、セミコロンではない一連の文字 (+
少なくとも 1 つを意味する) に一致する否定文字クラスです (改行文字にも一致するため、文字列にそれらが含まれている場合は注意してください。その後、それらをクラスに追加する必要があります[^;\r\n]
) 。
文字列の split() メソッドを見てください。それはまさにあなたが望むことをするはずです。
「;」で分割 最初に、次に結果の文字列の "=" で。
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);
}
}
正規表現検索を直接行うこともできます。私はそれを調べる必要があります(正規表現を頻繁に使用しないでください)が、それは簡単に理解できます。おそらく、正しい正規表現を含む回答が既に存在します... ;)