正则表达式X和/或Y.

时间:2013-06-19 05:33:39

标签: java php regex

考虑以下正则表达式,其中XY 任何正则表达式。

XY|YX|X|Y

此正则表达式测试X和/或Y,但如果找不到“and”子句则必须仔细检查表达式。

匹配X 和/或 Y的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

正则表达式/XY?|YX?/应该与您列出的四种情况相匹配。但这是有限的,就像你使用的正则表达式有一个共同的匹配,你可能会得到意想不到的结果。

  

信息有限,有限的解决方案

如果这是一个问题,可能会在问题中添加更多要求。

说明:

上半部分将尝试匹配X正则表达式,然后尝试匹配Y正则表达式01次。如果X正则表达式失败,那么它将尝试下半部分;会尝试匹配Y正则表达式,然后尝试匹配X正则表达式01次。

答案 1 :(得分:1)

[XY]+获取任意数量的X和Y(包括XYYXYX等)。

或者...

[XY]{1,2}选择1-2个X和Y(仅包括您的4个示例)。

答案 2 :(得分:0)

根据您对X and/or Y这个正则表达式的要求:

(?:(?=.*?X)|(?=.*?Y))(X|Y)

现场演示:http://www.rubular.com/r/K36HjXzHLF