Возможно ли создать регулярное выражение в стиле PCRE, которое будет соответствовать только каждой букве в списке только один раз?Regex использовать каждую букву только один раз?
Например, если у вас есть буквы «lrsa», и вы пытаетесь сопрягать список слов против:
^[lrsa]*m[lrsa]*$
вы собираетесь соответствовать «Lams» (действует), но и «лам» (недействителен для наших целей, потому что у вас только один «а»). Если ваше письмо было «lrsaa», вам нужно было бы совместить «lamas».
Возможно ли это с помощью регулярных выражений, или я должен обращаться с программным обеспечением?
Это не будет работать как '[lrsaa]' равно '[lrsa]'. – Gumbo
Правильно, и это моя проблема. Вы можете ограничить с помощью [lrsa] {4}, но это все равно будет соответствовать «lass», например. – gtcaz
Что вы можете сделать, так это соответствовать тем, которые вы хотите, и некоторым дополнительным функциям, которых вы не делаете. С итерацией ваших матчей было бы тривиально отфильтровывать нежелательные дополнения. – erisco