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

Regex to parse a command string

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

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解析问题。这里的消息是一个正文字符串,因此可以在消息部分包含'&'。将相同的拆分与“&”一起使用可能会导致拆分错误。

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

我认为关键是使用惰性求值,下面应该可以解决问题:

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

从一个字母(小写或大写)开始直到第一次出现“=”,然后获取包含大括号的值并重复。

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