В регулярных выражениях получить одно совпадение непосредственно перед шаблоном совпадения?

У меня есть ответ как ниже

{"id":9,"announcementName":"Test","announcementText":"<p>TestAssertion</p>\n","effectiveStartDate":"03/01/2016","effectiveEndDate":"03/02/2016","updatedDate":"02/29/2016","status":"Active","moduleName":"Individual Portal"}
{"id":103,"announcementName":"d3mgcwtqhdu8003","announcementText":"<p>This announcement is a test announcement”,"effectiveStartDate":"03/01/2016","effectiveEndDate":"03/02/2016","updatedDate":"02/29/2016","status":"Active","moduleName":"Individual Portal"}
{"id":113,"announcementName":"asdfrtwju3f5gh7f21","announcementText":"<p>This announcement is a test announcement”,"effectiveStartDate":"03/02/2016","effectiveEndDate":"03/03/2016","updatedDate":"02/29/2016","status":"InActive","moduleName":"Individual Portal"}

Я пытаюсь получить значение id (103) объявления Name d3mgcwtqhdu8003.

Я использую ниже шаблон RegEx, чтобы получить идентификатор

 "id":(.*?),"announcementName":"${announcementName}","announcementText":"

Но он соответствует всему от первого идентификатора до объявления. и возвращаясь

9,"announcementName":"Test","announcementText":"<p>TestAssertion</p>\n","effectiveStartDate":"03/01/2016","effectiveEndDate":"03/02/2016","updatedDate":"02/29/2016","status":"Active","moduleName":"Individual Portal"}
{"id":103,"announcementName":"d3mgcwtqhdu8003","announcementText":

Но я хочу сопоставить только с идентификатором непосредственно перед требуемым объявлением.

Как я могу сделать это в RegEx . Может кто-нибудь, пожалуйста, помогите мне в этом?

1 ответ

В качестве ответа и здесь. Либо использовать соответствующий JSON функции, если нет, простое регулярное выражение, подобное:

"id":(\d+)

вероятно будет делать, так как идентификаторы являются числовыми.

Другие вопросы по тегам