我必须遵循文本格式,我想使用模板提取内容。
值{ABC,XYZ ...} |消息{这是测试消息}
当我遇到上面的字符串时,我想提取'Value'和'Message'的内容而不用Java解析整个字符串。
正则表达式可以吗?
答案 0 :(得分:1)
是的,使用正则表达式是可能的,假设格式没有改变。
http://rubular.com/r/R8WIonv6Oj< - 请按此链接查看示例。
Value\{(.*)\}\|Message\{(.*)\}
有两个匹配的组,用于花括号之间的内容。但是,您可以轻松地执行此操作而无需使用正则表达式
答案 1 :(得分:0)
如果您的字符串始终采用您提到的格式,则以下代码有效......
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