首页 > 解决方案 > Java 正则表达式匹配比较运算符

问题描述

我需要一个正则表达式来匹配这样的东西

key>value
key=value
key.subkey>=value

这是我的正则表达式

([a-zA-Z]*\.{0,1}[a-zA-Z]*)([=|>|<|>=|<=]{1})(.*)

它适用于大多数情况,但 >= 和 <= 除外

例子:

test>=123

Group
0   test>=123
1   test
2   >
3   =123

我如何指定最后一组不以特殊字符开头?

标签: javaregex

解决方案


您可以使用

([a-zA-Z]+(?:\.[a-zA-Z]+)?)([<>]=|[=><])(.*)

查看正则表达式演示

细节

  • ([a-zA-Z]+(?:\.[a-zA-Z]+)?)- 第 1 组:1+ ASCII 字母后跟可选的点序列和 1+ ASCII 字母
  • ([<>]=|[=><])- 第 2 组:<or>然后=, or a =, <, or >所以较长的,<=or>=先尝试
  • (.*)- 第 3 组:除换行符之外的任何 0 个或多个字符,尽可能多。

推荐阅读