テキスト形式に従う必要があります。テンプレートを使用してコンテンツを抽出したいと思います。
値{ABC、XYZ...}|メッセージ{これはテストメッセージです}
上記の文字列に遭遇したとき、Javaで文字列全体を解析せずに「Value」と「Message」の内容を抽出したいと思います。
正規表現で可能ですか?
はい、これは正規表現で可能です。フォーマットが変更されないことを前提としています。
http://rubular.com/r/R8WIonv6Oj <-例については、このリンクをたどってください。
Value\{(.*)\}\|Message\{(.*)\}
中括弧の間にあるものに対して2つの一致するグループがあります。ただし、正規表現を使用せずにこれを簡単に行うことができます
文字列が常にあなたが言及した形式である場合、以下のコードは機能します...
String s = "Value{ABC,XYZ...}|Message{This is test message}";
System.out.println(s.split("value")[0].split("\\{")[1].split("}")[0]); //prints ABC,XYZ...
System.out.println(s.split("Message")[1].split("\\{")[1].split("}")[0]); //prints This is test message