Regex для поиска значений с кавычками, точкой с запятой и равно - PullRequest
0 голосов
/ 28 августа 2018

Мой запрос прост, и моя задача очень проста и очень нова для 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"}

Первая запись является действительной записью с Serverserial и Server Name, но вторая запись недействительна с 0 в качестве серийного номера сервера и пустым ServerName.

Я хочу сопоставить вторую запись, чтобы исключить записи. Я попробовал это, это соответствует обеим записям.

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

С моим опытом я не смог этого сделать. Может ли кто-нибудь помочь мне решить эту кучу

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Чтобы добавить это как полный ответ ..

  • Просто найдите фиксированную часть рассматриваемой строки и используйте ее в качестве переднего якоря,
  • затем сопоставьте до первой фигурной скобки.
  • В соответствии с запросом я добавил необязательную запятую (в случае, если нежелательные данные появляются в конце)
{"eventType":"delete","ServerSerial":"0","ServerName":""[^}]+},?

Regex Demo

0 голосов
/ 28 августа 2018

Это будет соответствовать любой строке с именем сервера "" или серийным номером сервера 0

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

Демо

...