用于解析命令字符串的正则表达式
Regex to parse a command string
将 String
解析为 java.util.Map
的正则表达式是什么,其中字符串具有如下定义的格式:
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解析问题。这里的消息是一个正文字符串,因此可以在消息部分包含'&'。将相同的拆分与“&”一起使用可能会导致拆分错误。
此外,{ }
只是需要用正则表达式替换的理想函数。
我认为关键是使用惰性求值,下面应该可以解决问题:
([a-zA-Z].*?={.*?})
从一个字母(小写或大写)开始直到第一次出现“=”,然后获取包含大括号的值并重复。
将 String
解析为 java.util.Map
的正则表达式是什么,其中字符串具有如下定义的格式:
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解析问题。这里的消息是一个正文字符串,因此可以在消息部分包含'&'。将相同的拆分与“&”一起使用可能会导致拆分错误。
此外,{ }
只是需要用正则表达式替换的理想函数。
我认为关键是使用惰性求值,下面应该可以解决问题:
([a-zA-Z].*?={.*?})
从一个字母(小写或大写)开始直到第一次出现“=”,然后获取包含大括号的值并重复。