Ist es möglich, einen regulären Ausdruck im PCRE-Stil zu erstellen, der nur jeden Buchstaben in einer Liste nur einmal abgleicht?Regex, um jeden Buchstaben nur einmal zu verwenden?
Zum Beispiel, wenn Sie die Buchstaben „LRSA“ haben und Sie versuchen, eine Wortliste passend gegen:
^[lrsa]*m[lrsa]*$
du gehst „vermöbelt“ (gültig) entsprechen, sondern auch „Lama“ (ungültig für unsere Zwecke, weil Sie nur ein "a" hatten). Wenn dein Briefset "lrsaa" wäre, würdest du "lamas" anpassen wollen.
Ist dies mit regulären Ausdrücken möglich, oder sollte ich es programmgesteuert behandeln?
Dies wird als 'nicht funktioniert [lrsaa] 'gleich' [LRSA] '. – Gumbo
Richtig, und das ist mein Problem. Sie können mit [lrsa] {4} begrenzen, aber das entspricht zum Beispiel immer noch "lass". – gtcaz
Was Sie tun können, ist die Übereinstimmung mit den gewünschten und einige Extras, die Sie nicht tun. Bei einer Iteration Ihrer Matches wäre es trivial, die unerwünschten Extras herauszufiltern. – erisco