简单的 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;]+)
现在,
是您想要的第一个子类型。
这似乎是一个简单的问题,但我正在与贪婪作斗争(我认为),我找不到一个明显的例子:
给定以下字符串:
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;]+)
现在, 是您想要的第一个子类型。