正则表达式每个字母只使用一次?
是否可以构造一个 PCRE 风格的正则表达式,该表达式仅与列表中的每个字母匹配一次?
例如,如果您有字母“lrsa”,并且您尝试匹配单词列表:
^[lrsa]*m[lrsa]*$
您将匹配“lams”(有效),但也会匹配“lamas”(对于我们的目的无效,因为您只有一个“a” ”)。如果您的字母集是“lrsaa”,您会想要匹配“lamas”。
这可以用正则表达式实现吗?或者我应该以编程方式处理它?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用否定前瞻:
将做您想做的事
You can use negative look-ahead:
will do what you want