有字符串时
helloworld
worldhello
ollehdlrow
是否有可以匹配所有这些案例的正则表达式?所以,基本上是一种模式,匹配包含所有字符的所有字符串,未指定顺序。
我尝试使用
/[helloworld]{10}/
但由于显而易见的原因,这不起作用,因为它也会匹配eeeeeeeeee
。
答案 0 :(得分:1)
你绝对不想为此使用正则表达式。
为了检查字符串中是否存在字符,在您的情况下,您必须使用正向前瞻。它看起来像(?=a)
,用于检查字符a
。没关系。如果我们要检查包含字符a
和b
的字符串,我们可以/^(?=.*a)(?=.*b)/
。如果我们想检查多个a
,则会出现问题。
查看此示例:http://regex101.com/r/iV2jC8
正如你所看到的那样,正则表达式已经“告诉”了两次字母“a”。但是,第一种情况仍然匹配。这是因为引擎没有保存最初找到第一个'a'的位置,因此下一个断言找到了相同的a。在所有三个例子中都是这种情况。所以实际上,它们都没有真正得到验证。
您必须执行以下操作:http://regex101.com/r/cR8eR4
你可能想象的那样,很快就会失去更大的模式。
我希望这有帮助,祝你好运。