将String
解析为java.util.Map
的正则表达式是什么,其中String具有如下定义的格式:
message_type={any_text}&message_number={digits}&code={digits}&id={digits}&message={any_text}×tamp={digits_with_decimal}
目标是使用message_type,message_number,code,id,message和timestamp键生成Map。
这是正则表达式可以解析的东西吗?或者这需要一个带语法的解析器?
更新
这与URI解析问题不同。这里的消息是一个字符串因此可能包括'&'在消息部分。使用与'&'相同的拆分可能导致错误的分裂。
此外,{ }
只是需要由正则表达式替换的理想函数。
答案 0 :(得分:1)
我认为关键是使用延迟评估,以下应该可以解决问题:
([a-zA-Z].*?={.*?})
以字母(下部或上部)开头,直到第一次出现" ="然后获取包括大括号的值并重复。