Regex 正则表达式;所有三个都以任何顺序排列,仅此而已。”;

Regex 正则表达式;所有三个都以任何顺序排列,仅此而已。”;,regex,Regex,我需要生成一个reg表达式,该表达式将匹配以下条件: 1) 只有当它有三个单词时才算数学 2) 没有用分号(;)分隔或分开 3) 以任何顺序 4) 所有单词都应包含在内,否则将不匹配 我试过这个: ^(?=(.*;|)one)(?=(.*;|)two)(?=(.*;|)three).*$ 但不知何故,它匹配了像oneasfafasaf这样的变体;二,;三 这是错误的 求求你,救命 另外,有时需要有三个以上的字符,但我想了解核心部分您可以全部使用3个字符并检查每个字符是否存在,然后,如果字符串仅

我需要生成一个reg表达式,该表达式将匹配以下条件:

1) 只有当它有三个单词时才算数学 2) 没有用分号(;)分隔或分开 3) 以任何顺序 4) 所有单词都应包含在内,否则将不匹配

我试过这个:

^(?=(.*;|)one)(?=(.*;|)two)(?=(.*;|)three).*$
但不知何故,它匹配了像oneasfafasaf这样的变体;二,;三 这是错误的

求求你,救命

另外,有时需要有三个以上的字符,但我想了解核心部分

您可以全部使用3个字符并检查每个字符是否存在,然后,如果字符串仅由3个单词组成:

^(?=.*?(one))(?=.*?(two))(?=.*?(three))(?:(?:\1|\2|\3);?){3}$
参见(右侧的说明)

试试这个。看演示


post input and expected output这是not的副本,实际上不是副本,我只需要这些单词,字符串中没有其他内容。对不起,如果我忘了提的话。“一;二;三”,“三;二;一”,“三二一”应该匹配“一;二;四;三”,“一;一;二;二;三”-不应该匹配matched@user3414347是的,检查我的答案
(one|two|three);?(?!\1)(one|two|three);?(?!\2)(one|two|three)