Simple PCRE Regex



这似乎是一个简单的问题,但我正在与贪婪作斗争(我想),我找不到一个明显的例子:

给定以下字符串:

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是您想要的第一个子类型。

演示

最新更新