Это, казалось бы, простой вопрос, но я борюсь с жадностью (я думаю), и я не могу найти очевидный пример:Простой PCRE Regex
дана следующая строка:
text/html; text/xml; text/json
Что мне нужно сделать, чтобы получить «первый подтип» («html» в приведенном выше примере)?
Я пробовал все виды комбинаций, как это:
(.*)\/(.*)[ |;]
и пытается получить вторую переменную.
Я знаю, что строка всегда будет иметь по крайней мере одну строку в виде
aaa/bbb
и которые могут быть либо его, либо он может сопровождаться запятой (с возможностью пробелов между ними) и больше данных (которые я могу игнорировать - мне нужен только первый подтип). Таким образом, возможные варианты могут быть такие:
text/html
text/html; text/xml
text/html ; text/xml ; application/json
Я надеялся, что это было так просто, как глядя на первый слэш, а затем принимать все после того, что до либо пробел или точку с запятой или конца string (это то, что я думал о моем регулярном выражении), но я недостаточно квалифицирован в регулярном выражении.
Для уточнения, это должно быть PCRE-совместимый регулярное выражение, если это помогает/мешает вещи ...
'\/[;]' - использовать ленивое соответствие (*.?) (*.?). Или '[^ \ /] + \/(\ S +)' (оба с 'preg_match', если это для PHP) –