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