Wie erstellt man am besten einen dynamischen Regex, der einer bestimmten Menge von Zeichen (Zeichen und deren Reihenfolge zur Laufzeit) entspricht.Regex-Übereinstimmungszeichensatz ohne vorherige Duplizierung
character set: abcd
character format: ??j? (question mark represents a a character from character set)
Beispiel
abjd = match
bdja = match
dbja = match
ab = no match
aajd = no match
abjdd = no match
abj = no match
ich einen regulären Ausdruck Builder erstellt haben (in js) wie folgt:
// characters are the character set
// wordFormat is the character format
// replace(str, search, replacement) replaces search in str with replacement
var chars = "[" + characters + "]{1}";
var afterSpecialConversion = replace(wordFormat, "?", chars);
var myRegex = new RegExp("^" + afterSpecialConversion + "$", "gi");
Leider ist dieses das Ergebnis nicht erreichen, da es nicht doppelte Elemente nicht berücksichtigt. Ich dachte über die Verwendung von übereinstimmenden Gruppen, um Duplikate zu vermeiden, aber ich weiß nicht, wie die bereits vorhandene Zeichengruppe aus dem Rest des Satzes zu negieren.
Auch gegebener Zeichensatz aabcd
jetzt a
kann zweimal existieren. Irgendwelche Vorschläge?