1=1的Java正则表达式
我需要寻找java正则表达式模式,该模式可以找到格式为1=1的输入字符串,其中“=”的前缀应具有与后缀相同的数字计数。此外,这里的前缀和后缀值应与1=1、11=11、223=223相同。像1=2、3=22、33=22这样的值不应该与模式匹配 我们可以有一个通用模式来满足上述规则。使用反向参考: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
(\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*$