【发布时间】:2012-02-02 19:01:05
【问题描述】:
我最近一直在想一些随机的事情,这件事引起了我的注意。
如何为包含 X、Y 和 Z(或就此而言的任何字母组合)的单词编写正则表达式,但不一定按此顺序。
我试过了
[^xyz]*x[^xyz]*y[^xyz]*z
但这只是按这个顺序搜索
我们可以做
[^xyz ]*[xyz][^xyz ]*[xyz][^xyz ]*[xyz]
但这没什么用,因为它也只匹配 xy。
我的目标是匹配 以下所有顺序中包含 x、y 和 z 的单词的正则表达式
- xyz
- xzy
- yzx
- yxz
- zxy
- zyx
编辑
之前忘记添加了(抱歉)
如何让它也匹配像这样的词
abxcydz(x、y 和 z 按上述任意顺序排列)
【问题讨论】:
-
您确定正则表达式是该任务的正确工具吗?这可以通过其他方式(
if text.contains(X) and text.contains(Y) and text.contains(Z) do ...)轻松解决(并且以更易读的方式)。 -
@Heinzi,当然,但这有什么乐趣呢? :P 这个想法刚刚引起了我的注意,我的目标不是让它可读或琐碎,只是看看它是否可行。
标签: regex