解析 "Accept" header 的正则表达式

Regex to parse the "Accept" header

我正在研究 REST API。客户在他们的请求中使用 Accept header 来发送像

这样的东西

目前,我正在解析 headers 并选择媒体类型和版本以使用字符串函数:

我想知道是否可以使用正则表达式更快地做到这一点。

如何从请求中的 "Accept" header 中提取格式和版本?我想,我需要进行 2 次正则表达式调用才能完成此操作,没关系。

更新:

使用下面的答案,我尝试使用 ColdFusion 提取那些,但模式只匹配整个字符串。

理想情况下,我想要一个包含 2 个元素的数组,即 ['json', '1']。有任何想法吗 ?

<cfscript>
    arrTitles = reMatch(
        "application/vnd.website\+([A-Za-z]+);\s*version=(\d+)",
        "application/vnd.website+json; version=2"
    );

    writedump(arrTitles);
</cfscript>

请参考这个runnable example

你可以使用像这样简单的东西:

application/vnd.mywebsite\+([A-Za-z]+);\s*version=(\d+)

类型(json 或 xml)将在捕获组 1 中,版本在组 2 中。

您可以看到它正在运行 here