1=1的Java正则表达式

1=1的Java正则表达式,java,regex,Java,Regex,我需要寻找java正则表达式模式,该模式可以找到格式为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

我需要寻找java正则表达式模式,该模式可以找到格式为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");
 }
您可以使用:

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

也许更简单的说法是:

^\\s*(\\d+)\\s*=\\s*\\1\\s*$
这会忽略最终的空白,否则可能会使事情无法按预期工作。当然,这现在取决于您是否表示,
1=1
是有效的输入字符串


更一般的表述可以是:

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

在这里,您可以在等号之前比较任何字符串
+?
匹配任何字符直到一个等号。

您还可以检查
str.split(“=”[0])是否等于(str.split(“=”[1])
。这可能会在7=77时出现问题,因为它将其视为7=7。我不知道作者是否认为这是一个棘手的问题
^\\s*(.+?)\\s*=\\s*\\1\\s*$