简单的 PCRE 正则表达式

Simple PCRE Regex

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

给定以下字符串:

text/html; text/xml; text/json

我该怎么做才能检索 'first subtype'(上例中的 'html')?

我尝试过各种组合,如下所示:

(.*)\/(.*)[ |;]

并尝试获取第二个变量。

我知道字符串总是至少有一个字符串形式

aaa/bbb

这可能是分号,也可能后跟一个分号(它们之间可能有空格)和更多数据(我可以忽略 - 我只需要第一个子类型)。所以可能的选择可能是这样的:

text/html
text/html; text/xml
text/html ; text/xml     ; application/json

我曾希望它就像寻找第一个斜线一样简单,然后将其后的所有内容都提取到空白或分号或字符串的末尾(这就是我认为我的正则表达式正在做的事情) ), 但我对正则表达式不够熟练。

为了澄清,这需要是一个 PCRE 兼容的正则表达式,如果 helps/hinders 东西...

做:

^[^\/]+\/([^\s;]+)

现在, 是您想要的第一个子类型。

Demo