考虑以下正则表达式,其中X
和Y
是任何正则表达式。
XY|YX|X|Y
此正则表达式测试X
and/or Y
,但如果未找到“and”子句,则必须仔细检查表达式。
X
匹配和/或 的最佳方式是什么Y
?
正则表达式/XY?|YX?/
应该可以匹配您列出的四种情况。然而,这是有限的,如果你使用的正则表达式有一个共同的匹配,你可能会得到意想不到的结果。
信息有限,解决方案有限
如果这是一个问题,也许会向问题添加更多要求。
解释:
前半部分将尝试匹配X
正则表达式,然后将尝试匹配Y
正则表达式0
或1
时间。如果X
正则表达式失败,那么它将尝试下半部分;它将尝试匹配Y
正则表达式然后将尝试匹配X
正则表达式0
或1
时间。
[XY]+
获得任意数量的 X 和 Y(包括XYYXYX
等)。
或者...
[XY]{1,2}
选择 1-2 Xs 和 Ys(仅包括您的 4 个示例)。