Java Regex ORing

时间:2015-05-11 08:54:01

标签: mysql regex

我的查询模式为"^(select (skip \\d+)? (first \\d+))"。 我想匹配

类型的查询
1."SELECT * FROM X"
2."SELECT SKIP a FIRST b * FROM X"
3."SELECT SKIP a * FROM X"
4."SELECT FIRST B * FROM X"

我试过的上述正则表达式适用于1,2,3,但不适用于4。 我应该改变正则表达式的任何想法,以便可以查询所有4种模式。

2 个答案:

答案 0 :(得分:1)

^select (?:skip \d+\s+)?(?:first \d+\s+)?\* from X$

你可以使用它。参见演示。

https://regex101.com/r/oF9hR9/7

答案 1 :(得分:0)

您可以使用以下正则表达式匹配所有这些条目:

select\s*(?:skip\s*\d+)?\s*(?:first\s*\d+)?(?:\s*\*?\s*from\s+\d+)?

请参阅demo