のような文字列があります[key1=value1, key2=value2]
。キーのように1つだけ、[key1=value1]
またはより多くのキーを含めることもできます。取得する正規表現を作成するにはどうすればよいですか
期待した
Group1: key1=value1
Group2: key2=value2
私は/(?<=\[)(.*)=(.*)(,)*(?=\])/
ここでパターンを試しましたが、それは私に与えます
実際の
Group1: key1=value1, key2
Group2: value2
これらのキーと値のペアを使用して抽出できます
(\w[^,=]*)=(.*?)(?=]|,\s*\w[^,=]*=)
正規表現のデモを見る
細部
(\w[^,=]*)
-グループ1:以外0+文字に続く単語の文字=
と,
=
- =
イワナ(.*?)
-グループ2:改行文字以外の0+文字、できるだけ左端の出現まで(?=]|,\s*\w[^,=]*=)
- ]
charまたは,
以外、0+空白ワードチャー、次いで0+文字=
と,
、その後=
。String s = "[key1=value1, key2=value2, key 3= text,value # 3]";
Pattern pattern = Pattern.compile("(\\w[^,=]*)=(.*?)(?=]|,\\s*\\w[^,=]*=)");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
System.out.println("Key-value pair found:");
System.out.println(matcher.group(1).trim());
System.out.println(matcher.group(2).trim());
}
出力:
Key-value pair found:
key1
value1
Key-value pair found:
key2
value2
Key-value pair found:
key 3
text,value # 3
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加