Java正则表达式为1 = 1

时间:2014-01-21 09:32:08

标签: java regex

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

匹配

我们是否可以采用一般模式来满足上述规则。

3 个答案:

答案 0 :(得分:9)

使用后退参考:

(\d+)=\1\b

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

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

您可以使用capture groups and backreferences

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

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

也许更傻瓜式的表达方式是:

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

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


更通用的表达方式可能是:

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

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