这似乎是一个简单的问题,但我正在与贪婪作斗争(我想),我找不到一个明显的例子:
给定以下字符串:
text/html; text/xml; text/json
如何检索"第一个子类型"(上例中的"html")?
我试过各种各样的组合,比如
(.*)/(.*)[ |;]
并试图获得第二个变量。
我知道字符串总是至少有一个形式的字符串
aaa/bbb
这可能是它,也可能后面跟着分号(它们之间可能有空格)和更多的数据(我可以忽略这些数据——我只需要第一个子类型)。因此,可能的选择如下:
text/html
text/html; text/xml
text/html ; text/xml ; application/json
我曾希望它像查找第一个斜杠一样简单,然后将之后的所有内容都提取到空白、分号或字符串末尾(我认为我的正则表达式就是这么做的),但我对正则表达式不够熟练。
为了澄清,这需要是一个PCRE兼容的正则表达式,如果这有助于/阻碍事情。。。
Do:
^[^/]+/([^s;]+)
现在,1
是您想要的第一个子类型。
演示