在正则表达式中,在匹配模式之前获得一个匹配项?

时间:2016-03-02 05:21:44

标签: regex perl5

我的回复如下

{"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"}

我正在尝试获取announcementName d3mgcwtqhdu8003的id(103)的值。

我在regEx模式下使用以获取id

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

但它匹配从第一个id到announcementName的所有内容。

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":

但我想只匹配之前的 所需的announcementName。

我如何在RegEx中执行此操作。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

这里也是一个答案。使用适当的JSON函数,如果没有,可以使用简单的正则表达式:

"id":(\d+)

will probably do因为ID是数字。