考虑以下正则表达式,其中
X
和Y
是任意正则表达式。XY|YX|X|Y
这个正则表达式测试是否存在X
和/或Y
,但如果没有找到“and”子句,则必须再次检查表达式。
最佳匹配X
和/或Y
的方法是什么?
/XY?|YX?/
可以匹配你列出的四种情况。然而,这是有限制的,因为如果你使用的正则表达式有一个共同的匹配,你可能会得到意想不到的结果。
如果这是一个问题,也许应该在问题中添加更多要求。 说明: 前半部分将尝试匹配信息有限,解决方案也有限
X
正则表达式,然后尝试匹配Y
正则表达式0或1次。如果X
正则表达式失败,则尝试第二个部分;它将尝试匹配Y
正则表达式,然后尝试匹配X
正则表达式0或1次。[XY]+
表示获取任意数量的 X 和 Y(包括 XYYXYX
等)。
或者...
[XY]{1,2}
表示选择 1-2 个 X 和 Y(仅包括您提供的 4 个示例)。
XX
和YY
。 - Steve P.X
和 Y
代表的是 任何东西,而不仅仅是一个字符。 - FThompsonX
和/或Y
存在时,这将匹配整行,而不仅仅是X
和/或Y
部分本身。 - FThompsonX|Y
,就匹配而言。XY
的出现应该是这样匹配的,但是您的正则表达式将它们分别匹配为 X
和 Y
。 - FThompson
YX
怎么样?还是只有X
或Y
或XY
? - CraigX
和Y
是 任意 正则表达式。如果它们是单个字符,那么可以使用,但我正在寻找通用解决方案。 - FThompsonX?Y
...X
零次或一次,然后跟着 Y。 - fge/XY?|YX?/
这样的简单东西怎么样? - Craig