0

我必须遵循文本格式,我想使用模板提取内容。

Value{ABC,XYZ...}|Message{这是测试消息}

当我遇到上面的字符串时,我想提取'Value'和'Message'的内容而不用Java解析整个字符串。

正则表达式可以吗?

4

2 回答 2

1

是的,假设格式没有改变,这可以通过正则表达式实现。

http://rubular.com/r/R8WIonv6Oj <- 请点击此链接查看示例。

Value\{(.*)\}\|Message\{(.*)\}

有两个匹配组,用于花括号之间的内容。但是,您可以轻松地做到这一点,而无需使用正则表达式

于 2012-09-28T22:23:43.410 回答
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
于 2012-09-28T22:02:25.013 回答