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*$
你可以在等号之前比较任何字符串。 .+?
匹配任何字符,直到等号。