我需要创建一个符合以下条件的reg表达式:
1)mathing只有当它有三个单词时2)没有用分号分隔或分隔(;)3)任何顺序4)所有的单词都应该包括在内,否则它将不匹配
我试过这个:
^(?=(.*;|)one)(?=(.*;|)two)(?=(.*;|)three).*$
Run Code Online (Sandbox Code Playgroud)
但不知何故,它会变形像oneasfafasfsaf;两个;三个错误
请帮忙!
PS有时它需要超过三个,但我想了解核心
您可以捕获所有3并检查每个存在,然后,如果字符串仅由3个单词组成:
^(?=.*?(one))(?=.*?(two))(?=.*?(three))(?:(?:\1|\2|\3);?){3}$
Run Code Online (Sandbox Code Playgroud)
请参阅regex101.com上的测试(右侧说明); 正则表达式常见问题