正则表达式只使用每个字母一次?

时间:2010-04-13 16:48:14

标签: regex pcre

是否可以构建一个PCRE样式的正则表达式,它只匹配列表中的每个字母一次?

例如,如果您有字母“lrsa”,并尝试将单词列表与:

匹配
^[lrsa]*m[lrsa]*$

你要匹配“lams”(有效),还要匹配“lamas”(因为你只有一个“a”而无效)。如果你的信件是“lrsaa”,你会想要匹配“喇嘛”。

这可能是正则表达式,还是我应该以编程方式处理它?<​​/ p>

1 个答案:

答案 0 :(得分:3)

您可以使用否定预测:

^(?!.*?(.).*?\1)[lrsa]*m[lrsa]*$

会做你想做的事