正则表达式每个字母只使用一次? [英] Regex to use each letter only once?

查看:44
本文介绍了正则表达式每个字母只使用一次?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is it possible to construct a PCRE-style regular expression that will only match each letter in a list only once?

例如,如果您有字母lrsa"并且您尝试根据以下内容匹配单词列表:

For example, if you have the letters "lrsa" and you try matching a word list against:

^[lrsa]*m[lrsa]*$

您将匹配lams"(有效),但也要匹配lamas"(对我们来说无效,因为您只有一个a").如果你的字母集是lrsaa",你会想要匹配喇嘛".

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?

推荐答案

您可以使用否定前瞻:

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

做你想做的事

这篇关于正则表达式每个字母只使用一次?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆