У меня есть регулярное выражениеRegular Expression уникальный результат
(?:(da|en-gb|en|\*))(?!.*\1)
То, что я хочу, чтобы получить это, чтобы соответствовать уникальным языком типа;
Например, enenen-gben
номер матча en-gben
, это то, что я хочу, потому что бывшие два en
повторяются.
Однако, когда я даю enenenen-gb
матч часть является en-gb
, что я что получаю enen-gb
, я думаю, что причина в том, что en
подстрока en-gb
. Но я не знаю, как это исправить. Может ли кто-нибудь дать мне лучше RE? Большое спасибо
=================== обновление ==============
Предыстория вопроса является что я хочу создать Regex для http-заголовка accept-language. Поэтому я использую (?:(da|en-gb|en|\*))(?!.*\1)(;q=(1|0(\.\d+)?))?(,(da|en-gb|en|\*)(;q=(1|0(\.\d+)?))?)*
здесь da
, en-gb
, en
- это всего лишь несколько образцов. Вы знаете, каждому языку может быть присвоено значение q для представления его приоритета. И я не надеюсь, что какой-либо повторяющийся тип языка произойдет. Это то, чего я хочу.
@anubhava Я не думаю, что этот вопрос связан с языком, который вы используете. Я просто создаю регулярное выражение для представления другого типа языка. На самом деле, дело в том, что у меня есть набор типов языков, и я хочу представлять их с помощью регулярного выражения без повторных. –
Попробуйте ['(?: (Da | en-gb | en | \ *)) (?!. * \ 1 (?! -))'] (https://regex101.com/r/mN6qR7/1) , –
@ WiktorStribiżew Это не работает. Вы пробовали это? –