java正则表达式来解析命令字符串
将String
解析为java.util.Map
的正则表达式是什么,其中字符串的定义格式如下:
message_type={any_text}&message_number={digits}&code={digits}&id={digits}&message={any_text}×tamp={digits_with_decimal}
目标是生成带有消息类型、消息编号、代码、id、消息和时间戳键的映射
这是正则表达式可以解析的吗?或者这需要一个语法分析器
更新:
这与URI解析问题不同。此处的消息是一个正文字符串,因此可能包含“&;”在消息部分。使用与“&;相同的拆分”可能会导致错误的分割
而且,{ }
正是需要用正则表达式替换的理想函数
# 1 楼答案
我认为关键是使用惰性评估,下面应该做到这一点:
从一个字母(小写或大写)开始,直到第一次出现“=”为止,然后获取包含大括号的值,然后重复
演示: https://regex101.com/r/iE0hU3/1