java - 正则表达式从 errorString 捕获多个单词

标签 java regex regex-group

我有一个字符串,它基本上包含错误信息,我想从错误字符串中捕获重要信息

我有以下错误字符串。

trackingID=jskdf-77sdkj-oij4-kerj43-lklfds; 
key1=lksfjsdkjfkslkdjf;
key2=skjfjdkfj43jrkjskd;
key3=lksfjsdkjfkslkdjf;
key4=skjfjdkfj43jrkjskd;


{
    "info":{
      "details":[
         {
            "code":"ABC23423",
            "messages":"msg:INVALID_ERROR",
            "timeStamp":"2019-08-30T15:03:43.668Z"
         }
      ],
      "$httpStatus":400
   },
   "status":400,
   "test":"ABC2342fdsff3",
   "contactDetails":{
      "primaryCommunication":{
         "addressLine1":"231 London 71",
         "addressLine2":"",
         "addressLine3":"",
         "city":"London",
         "country":"England",
         "countryCode":"GB",
         "postalCode":"TW33ER",
         "usage":"Home",
         "county":"ENGLAND",
         "stateCode":"",
         "state":""
      },
      "name":{
         "number":"45765767343",
         "title":"Mr",
         "firstName":"Nitin",
         "lastName":"Dumbre",
         "address":"nitin-d@gmail.com",
         "code":"+44"
      },
      "email":{
         "address":"nitin-d@gmail.come"
      },
      "phone":[
         {
            "number":"44 7647632746732",
            "code":"Home"
         }
      ],
      "preferredCountry":{
         "code":""
      },
      "preferredLanguage":""
   }
}

我想捕获以下属性值:

  1. 跟踪ID
  2. 代码
  3. 消息
  4. 状态

我已经形成了下面的正则表达式来捕获这些详细信息

(trackingID|\\"code|\"messages|\"status\\")(=|\\":\\"|:)([^(;|\\"|,)]*)

上述正则表达式并非在所有情况下都有效。例如,给定的字符串 \"code\":\" 会多次出现,因此代码值会被覆盖。

我想捕获位于 \"messages\":\" 属性之前的值 code 属性。

你能帮我改进正则表达式吗?

最佳答案

要解决您的问题,您可以使用 GSON 而不是 REGEX,它将是更干净且不太复杂的解决方案。

关于java - 正则表达式从 errorString 捕获多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59247859/

相关文章:

java - 使用 Spring boot 在 thymeleaf 模板中打印数据时出现问题

Java - 读取和写入 .txt 文件

javascript - 忽略 HTML 实体的正则表达式

regex - 是否有基于 GNU Windows 的文本编辑器,它使用完整的正则表达式和用于查找替换的出色文档?

python-3.x - 正则表达式匹配字符串中的数字零

java - 尝试解析字符串时出现数字格式异常

java - 如何使用 Java 从 CryptoJS 解密加密的 AES-256 字符串?

php - 正则表达式中的数字范围

javascript - 用于解析组的多个条件的正则表达式

php - 如何用大写字母分隔单词?