Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Regex解析命令字符串_Java_Regex_Parsing - Fatal编程技术网

Java Regex解析命令字符串

Java Regex解析命令字符串,java,regex,parsing,Java,Regex,Parsing,将字符串解析为java.util.Map的正则表达式是什么,其中字符串的定义格式如下: message_type={any_text}&message_number={digits}&code={digits}&id={digits}&message={any_text}&timestamp={digits_with_decimal} 目标是生成带有消息类型、消息编号、代码、id、消息和时间戳键的映射 这是正则表达式可以解析的吗?或者这需要一个语法分析器

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

message_type={any_text}&message_number={digits}&code={digits}&id={digits}&message={any_text}&timestamp={digits_with_decimal}
目标是生成带有消息类型、消息编号、代码、id、消息和时间戳键的映射

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

更新:

这与URI解析问题不同。此处的消息是一个正文字符串,因此可能在消息部分包含“&”。使用与“&”相同的拆分可能会导致错误的拆分


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

我认为关键是使用惰性求值,下面应该做到这一点:

([a-zA-Z].*?={.*?})
从一个字母(小写或大写)开始,直到第一次出现“=”为止,然后获取包含大括号的值并重复

演示:

您不能使用标准库来解析查询字符串吗?请参阅,我对拆分的关注点是,消息部分可能包含“&”字符,从而导致它在此处拆分,这不是所需的输出。您可能需要编写更多有关要解析的数据的信息。会有断线吗?输入是否可以包含多个
message\u type
元素?格式已定义,没有重复的键,但是消息中没有实际的大括号,这就是想法