所以我有例如表达式,它有三个部分,例如: 123.XY12345.123 如何检查第一部分(123)是否与第三部分(123)相同)? 我试过这样的:正则表达式检查部分是否相同
\[0-9]{3}[/.][a-zA-Z]{2}[0-9]{5}[/.] _____ (here no idea)
所以我有例如表达式,它有三个部分,例如: 123.XY12345.123 如何检查第一部分(123)是否与第三部分(123)相同)? 我试过这样的:正则表达式检查部分是否相同
\[0-9]{3}[/.][a-zA-Z]{2}[0-9]{5}[/.] _____ (here no idea)
您可以使用反向引用。反向引用可用于解决先前捕获的模式的内容 - 模式本身。 \1
解决了组\1
等的内容。但需要注意的是,如果你已抓获小于10
组,\11
将指向捕获组1
加上文字1
像这样的内容:
$a = "123_abc_123";
if($a =~ /(\d+)_abc_\1/) {
print "yes";
} else {
print "no";
}
$a = "123_abc_456";
if($a =~ /(\d+)_abc_\1/) {
print "yes";
} else {
print "no";
}
你可以试试这个:
^(\d+)\..*\.\1$
\1
与第1个捕获组最近匹配的文本相同。
输入:
123.XY12345.123