如何使用捕获 2 种不同类型输出的同一匹配项的子匹配项创建正则表达式?

How to create RegEx with SubMatches of the same Match that capture 2 different types of output?

我正在尝试通过 JSON REST API 将我的 Jira 数据导入 Excel,即使用 VBA,我正在使用 RegEx 解析 JSON 输出。网络上有很多有用的教程,几天后我确实得到了或多或少我满意的可行解决方案,除了一个小障碍。长话短说:

在许多问题字段中,我需要友好的受让人姓名,但我项目中的一些问题可能是未分配,这显然会导致两种 非常不同的JSON 输出:

未分配 问题:

..."assignee":null,"updated"...

已分配 问题:

"assignee":{
    "self":...
    <Lots of NOT needed fields here>
    ...
    },
    "displayName":"Doe, John", <-- That's what I need, name only part
    "active":...
    <Lots of NOT needed fields here>
    ...
},
"updated"...

嗯,我想是这样的:

"assignee".*?"displayName":"(.*?)"|"assignee":(.*?),"updated"

将通过生成两个可能的 匹配项 来处理工作,但是... 有没有一种方法可以创建 RegEx,其中任何输出选项都会导致 SubMatches一场比赛?

我是 RegEx 的新手,如果我的问题的措辞由于使用不正确的术语而显得愚蠢,我深表歉意。无论如何,我希望样本部分或多或少是清楚的,我将非常感谢您提供有用的建议。

经过一个小时的 regex101 试用后,我得到了以下 RegEx:

"assignee":(null|.*?"displayName":"(.*?)","active")

可能它很丑陋并且可能会得到改进 - 但它确实起作用了,并且不会在此过程中破坏集合中后续匹配项的索引,因此保持其余代码像现在一样工作。