Regex to use each letter only once?
Is it possible to construct a PCRE-style regular expression that will only match each letter in a list only once?
For example, if you have the letters "lrsa" and you try matching a word list against:
^[lrsa]*m[lrsa]*$
you're going to match "lams" (valid), but also "lamas" (invalid for our purposes because you only had one "a"). If your letter开发者_开发百科 set was "lrsaa", you would want to match "lamas".
Is this possible with regular expressions, or should I handle it programmatically?
You can use negative look-ahead:
^(?!.*?(.).*?\1)[lrsa]*m[lrsa]*$
will do what you want
精彩评论