Java正则表达式1 = 1

我需要查找java regex模式,它找到格式为1 = 1的输入字符串,其中“=”前缀应该具有相同的后缀数字。 此外,前缀和后缀值应该相同,例如1 = 1,11 = 11,223 = 223。 像1 = 2,3 = 22,33 = 22的值应该与模式不匹配

我们可以有一般模式来满足上述规则。

使用后退参考:

 (\d+)=\1\b 

当然,在java中你需要转义反斜杠:

 "(\\d+)=\\1\\b" 

您也可以在没有正则表达式的情况下进

  String exp="lhs=rhs"; if(exp.split("=")[0].equals(exp.split("=")[1])){ System.out.println("true"); }else{ System.out.println("false"); } 

您可以使用捕获组和反向引用 :

 ^(\\d+)=\\1$ 

[锚点是为了防止其他任何匹配]

也许更简单的表达方式是:

 ^\\s*(\\d+)\\s*=\\s*\\1\\s*$ 

这会忽略最终的空白,否则会使事情无法按预期工作。 当然,这现在取决于你是否说,例如1 =1是一个有效的输入字符串。


更一般的表达可能是:

 ^\\s*(.+?)\\s*=\\s*\\1\\s*$ 

你可以在等号之前比较任何字符串。 .+? 匹配任何字符,直到等号。