匹配具有相似起始序列的运算符

Match operators with similar start sequence

假设我有一个 Java 匹配算法,它想要匹配以下表达式之一:

key =  value
key => value

我如何构建一个 Java 正则表达式来匹配任何 key-value 表达式与 = 字符并忽略 => 序列?

现在我有表达式

([^=]+)\s*=\s*([^\r\n]+)\s*\r?\n?

你可以使用负前瞻拆分:

s.split("\s*=(?!>)\s*")

参见regex demo and IDEONE demo

System.out.println(Arrays.toString("abc = cde".split("\s*=(?!>)\s*")));
System.out.println(Arrays.toString("abc => cde".split("\s*=(?!>)\s*")));

结果:

[abc, cde]
[abc => cde]

(?!>) 前瞻在 > 之后的匹配失败 =