正则表达式解析命令字符串

时间:2015-03-14 17:08:51

标签: java regex parsing

String解析为java.util.Map的正则表达式是什么,其中String具有如下定义的格式:

message_type={any_text}&message_number={digits}&code={digits}&id={digits}&message={any_text}&timestamp={digits_with_decimal}

目标是使用message_type,message_number,code,id,message和timestamp键生成Map。

这是正则表达式可以解析的东西吗?或者这需要一个带语法的解析器?

更新

这与URI解析问题不同。这里的消息是一个字符串因此可能包括'&'在消息部分。使用与'&'相同的拆分可能导致错误的分裂。

此外,{ }只是需要由正则表达式替换的理想函数。

1 个答案:

答案 0 :(得分:1)

我认为关键是使用延迟评估,以下应该可以解决问题:

([a-zA-Z].*?={.*?})

以字母(下部或上部)开头,直到第一次出现" ="然后获取包括大括号的值并重复。

演示: https://regex101.com/r/iE0hU3/1