Ich habe einen regulären AusdruckRegular Expression eindeutiges Ergebnis
(?:(da|en-gb|en|\*))(?!.*\1)
Was will ich erreichen ist einzigartig Sprache Typ entsprechen;
Zum Beispiel gebe ich enenen-gben
das Spiel Teil en-gben
ist, das ist, was ich will, weil die ersten beiden en
wiederholt werden.
Jedoch, wenn ich gebe enenenen-gb
das Spiel Teil ist en-gb
, was mir, was enen-gb
zu bekommen, ich glaube, der Grund dafür ist, dass en
ein Teil von en-gb
ist. Aber ich weiß nicht, wie ich das beheben soll. Kann mir jemand einen besseren RE geben? Vielen Dank
=================== Update ==============
Der Hintergrund der Frage ist, dass ich einen Regex für den HTTP-Header von accept-language entwerfen möchte. Also verwende ich (?:(da|en-gb|en|\*))(?!.*\1)(;q=(1|0(\.\d+)?))?(,(da|en-gb|en|\*)(;q=(1|0(\.\d+)?))?)*
hier da
, , en
sind nur einige Beispiele. Sie wissen, jeder Sprache kann ein Wert q zugewiesen werden, um ihre Priorität darzustellen. Und ich hoffe nicht, dass wiederholte Sprachtypen vorkommen. Das ist was ich will.
@anubhava Ich glaube nicht, dass diese Frage mit der verwendeten Sprache zu tun hat. Ich entwerfe nur eine Regex für die Darstellung der verschiedenen Sprachtypen. Tatsächlich ist der Fall, dass ich eine Reihe von Sprachtypen habe, und ich möchte sie mit Regex ohne wiederholte darstellen. –
Versuchen Sie ['(?: (Da | en-gb | en | \ *)) (?!. * \ 1 (?! -))'] (https://regex101.com/r/mN6qR7/1) . –
@ WiktorStribiżew Es funktioniert nicht. Hast du das versucht? –