Регламент проверки заголовка HTTP Accept-Language
Я пытаюсь проверить значения заголовка HTTP Accept-Language, используя PCRE
регулярное выражение и я придумал это регулярное выражение:
(?i:(?:\*|[a-z\-]{2,5})(?:;q=\d\.\d)?,)+(?:\*|[a-z\-]{2,5})(?:;q=\d\.\d)?
Два примера значений заголовка Accept-Language:
fr-CH,fr;q=0.9,en;q=0.8,de;q=0.7,*;q=0.5
en-US,en;q=0.9
Есть ли более оптимизированное регулярное выражение для этого?
1 ответ
Решение
В смысле короче было бы регулярное выражение для замены с использованием групп захвата и рекурсий:
(?i)((?:\*|[a-z-]{2,5})(?:;q=\d\.\d)?)(?:,(?1))*