java - 解析此消息

标签 java regex linux parsing programming-languages

所以我被表单的消息困住了

{ Envelope={ Category1={ "key1"="value1"} Category2={ "key2"="value2", "key3"="value3"} } }

我该如何解析这个奇怪的结构?我只对键值对感兴趣。我想要所有这些,而且我不关心类别。理想情况下是这样的:

key1 = value1
key2 = value2
key3 = value3

(带或不带引号)

任何语言的解决方案都是可以接受的。 Perl、Python、Java、C、C++、GNU 工具(sed、awk...)。我现在能想到的唯一解决方案是编写一个 Java/C++ 程序,但如果有更简单的方法,我想避免这种情况。

最佳答案

通过bash工具grep,

$ grep -oE '"[^"]*"="[^"]*"' file
"key1"="value1"
"key2"="value2"
"key3"="value3"

来自grep --help

-o, --only-matching       show only the part of a line matching PATTERN
-E, --extended-regexp     PATTERN is an extended regular expression (ERE)

说明:

  • " 匹配文字 " 符号。
  • [^"]* 匹配任何字符,但不匹配 " 零次或多次。

关于java - 解析此消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26363159/

相关文章:

linux - Bash 检查 csv 文件中的重复值

java - 里面有 listview 的 Viewpager

java - Vert.x 的 Verticle(s) JSON/YAML 配置(每个环境最好)

java - 使用 Java 将 Javascript 字符串文字与特定关键字匹配的正则表达式

regex - 通过不在匹配括号内的未注释逗号分割成单词

node.js - 错误 : Failed to launch the browser process! Whatsapp web js | Azure 门户 Linux puppeteer 师

c - 如何使用链接器将目标文件转换为可执行文件(C 目标文件)

java - 如何使用 Collectors 制作 map 的 map

java - 组合多个正则表达式从 : separated string 中提取子字符串

Java 正则表达式未编译