如何检索标签内容以及以下数据

How to retrieve tag contents as well as following data

我正在尝试创建一个正则表达式来拆分着色器源代码,如下所示:

来源:

@shader(vertex):
...shader data...

@shader(fragment):
...shader data...

结果:

["vertex", "..shader data..", "fragment", "..shader data.."]

到目前为止,我只能在没有着色器类型的情况下隔离数据,或者我已经包含了 @shader( 部分,但没有包含类型。这是我到目前为止所得到的:@shader\(([^)]*?)\)。我怎样才能让分离器像那样分离?谢谢

这应该有效

@shader\(([^)]*)\):(?:\r?\n)((?:[^@]|@(?!shader))*)

Demo