重复模式的模式匹配

时间:2013-07-29 23:14:31

标签: java regex

我正在尝试从格式为{{field: value} {field2: value} ... {fieldn: valuen}}

的字符串中提取组

我被困在{(.*): (.*)} - 在RegexTester中,它匹配整个字符串(可理解),但在执行中,它会引发异常 - “非法重复”

2 个答案:

答案 0 :(得分:2)

首先,{}应该被转义,因为它们意味着要重复的时间

其次,我认为你只想匹配字符串的一部分。您可以仅允许允许的字符(例如[a-z0-9]),以便不匹配条目字符串

\\{([a-z0-9]*): ([a-z0-9]*)\\}

正如评论中所指出的,您可以允许除一些特殊[^{}:]之外的所有字符。如果我没记错,你不需要在字符类中转义{}

答案 1 :(得分:0)

逃避一些角色:

"\\{(.*): (.*)\\}"

characters}和{有特殊含义,需要转义。