正则表达式只有在满足条件时才可以捕获某个字符串吗?



我有这组数据:

  • 结束日期":"2024-10-24","员工":"000A0001","已提交":"N">
  • 结束日期":"2023-10-18","员工":"000A0001","已提交":"P">
  • 结束日期":"2021-01-02","员工":"000A0001","已提交":"J">
  • 结束日期":"2022-10-11","员工":"000A0001","已提交":"M">
  • 结束日期":"2020-09-18","员工":"000A0001","已提交":"N">

我只想捕获"已提交"值为N 或 M"结束日期"。

捕获的结束日期应为:

  • 2024年10月24日
  • 2022年10月11
  • 2020年09月18

是的,您可以通过正则表达式正面展望来做到这一点:

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

更多细节在这里:正则表达式前瞻、后视和原子组

捕获日期并展望未来:

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

您的结束日期位于比赛的第 1 组中。

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

相关内容

最新更新