正则表达式查找带引号、分号和等于的值

Regex to Find values with quotes,Semicolon and Equals to

我的查询很简单,我的关注点也很简单,而且对 REGEX 很陌生。 我正在尝试将记录与双引号匹配。

Example :

This is my sample Record :

"eventType":"delete","ServerSerial":"1556562030","ServerName":"XYZ_U_O","deletedat":"2018-08-24 17:56:39.974"}


{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 17:56:34.944"}

第一条记录是服务器序列号和服务器名称的有效记录,但第二条记录无效,服务器序列号为 0,服务器名称为空。

我要匹配第二条记录来消除记录。 我确实试过了,它与两条记录都匹配。

**^(?=.*?\bdelete\b)(?=.*?\bServerName\b).*$** 

以我的专业知识我做不到。谁能帮我解决这个问题

这将匹配服务器名称为 "" 或服务器序列号为 0

的任何行

.*(?<=ServerSerial":")0(?=").*|.*(?<=ServerName":")(?=").*

Demo

要将此添加为完整答案..

  • 只需搜索有问题的字符串的固定部分并将其用作前锚,
  • 然后匹配到第一个花括号。
  • 根据要求,我添加了一个可选的逗号(如果不需要的数据出现在末尾)
{"eventType":"delete","ServerSerial":"0","ServerName":""[^}]+},?

Regex Demo