我正在使用REST API。客户端在其请求中使用Accept标头发送诸如
之类的内容...application/vnd.mywebsite+json; version=1...
或...application/vnd.mywebsite+xml; version=2...
。 目前,我正在解析标题并选择要使用字符串函数的媒体类型和版本:
json
和1
xml
和2
我想知道我是否可以用正则表达式更快地做到这一点。
如何从"接受"中提取格式和版本?请求中的标头?我想,我需要进行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。
答案 0 :(得分:2)
你可以使用这样简单的东西:
application/vnd.mywebsite\+([A-Za-z]+);\s*version=(\d+)
类型(json或xml)将在捕获组1中,即组2中的版本。
您可以看到它正常工作here。