Regex 只能在满足条件的情况下捕获某个字符串吗?

Can Regex capture a certain string only if a condition is met?

我有这组数据:

我只想捕获提交值为 N 或 MEndDate

捕获的结束日期应该是:

是的,您可以使用正则表达式前瞻来执行此操作:

\d{4}-\d{2}-\d{2}(?=.+"Submitted":"[NM]")

此处有更多详细信息:Regex lookahead, lookbehind and atomic groups

捕获日期并提前使用:

"EndDate":"([^"]+)"(?=.*"Submitted":"[NM]")

您的结束日期在比赛的第 1 组。

注意:我在正则表达式的开头添加了“””,假设您不小心从看起来是 json 的示例中省略了它。