简化复杂的正则表达式

use*_*457 6 java regex

我正在寻找一种简化正则表达式的方法,该正则表达式由值(例如12345),关系符号(<,>,<=,> =)和junctors(&,!)组成.例如表达式:

>= 12345 & <=99999 & !55555 
Run Code Online (Sandbox Code Playgroud)

应该匹配.我有这个正则表达式:

(^<=|^<= | ^>= | ^>= |^<|^>|^< |^> |^)((!|)([0-9]{1,5}))( & > | & < |& >=|&>=|&<=||&<=|&>=|&<|&>|&| &| & |$))*
Run Code Online (Sandbox Code Playgroud)

我特别不满意在表达式的开头和结尾重复<=,> =,<,>.我很乐意得到一个提示如何使其变得更简单,例如向前看,回顾一下.

Jun*_*uxx 0

您可以将所有空格设为可选(带问号),这样您就不必明确列出所有可能性。您还可以将相等/不等符号分组到字符集 ([ ]) 中。

像这样,我想

(^[<>]=?\s?)((!|)([0-9]{1,5}))(\s?&\s?[<>]=?\s|$)*
Run Code Online (Sandbox Code Playgroud)