如何修改具有出现限制的正则表达式

时间:2017-11-29 12:42:28

标签: regex string anagram

我有以下正则表达式:

^(?!.*([xampl]).*\1)(?!(.*e){3})[example]*$

它的工作原理如下:

  • 它匹配所有包含字母' x'' a',' m',' p',' l& #39; (字符只出现一次或根本不出现)
  • 它匹配所有字母' e'诅咒不到两次

此表达式匹配以下字符串:

  • 例如,充足,圈数,最大值,地图,请求等。

我想修改这个表达式,因此它可以匹配完全相同的字符串加上一个额外的'通配符' (一个字母a-z)。

新表达式应匹配以下字符串: - 圈数,地图,说唱,差距等。

有可能吗?

1 个答案:

答案 0 :(得分:0)

只需在字符串结尾前添加[a-z][example]*即可。这样,您仍然可以确保来自您给定字词的所有字母仅使用一次,但仍然会将允许的字母限制为example,但添加的字母[a-z]除外。

模式变为:

^(?!.*([xampl]).*\1)(?!(?:[^e\n]*e){3})[example]*[a-z][example]*$

Demo