我最近一直在考虑一些随意的事情,而这一点引起了我的兴趣。
如何为包含X,Y和Z(或任何字母组合)的单词编写正则表达式,但不一定按此顺序。
我试过
[^xyz]*x[^xyz]*y[^xyz]*z
但是这只按顺序搜索
我们可以做到
[^xyz ]*[xyz][^xyz ]*[xyz][^xyz ]*[xyz]
但这只是没用,因为它也只匹配xy。
我的目标是在所有以下订单中匹配包含x,y和z的单词的正则表达式
编辑
忘记添加此内容(抱歉发布)
如何使它匹配像
这样的单词abxcydz(x,y和z按上述任意顺序排列)
答案 0 :(得分:4)
你的意思是三个字母?如果是,那么:
(?=\w*X)(?=\w*Y)(?=\w*Z)\w*
答案 1 :(得分:3)
答案 2 :(得分:1)
怎么样
xyz|xzy|yxz|yzx|zxy|zyx
当然,随着字母数量的增加,这会变得很麻烦,所以你可以做前瞻(根据Felix的回答)或子串检查(根据Heinzi的评论)。
答案 3 :(得分:0)
我认为一个简单的角色类可以做到这一点。如果您只想查看主题是否包含x,y和/或z,那么只需使用以下内容:
[XYZ] +