所以我有例如表达式,它有三个部分,例如: 123.XY12345.123 如何检查第一部分(123)是否与第三部分(123)相同? 我试过这样的事情:
\[0-9]{3}[/.][a-zA-Z]{2}[0-9]{5}[/.] _____ (here no idea)
答案 0 :(得分:3)
答案 1 :(得分:2)
您可以使用后退参考。后向引用可用于解决先前捕获的模式的内容 - 在模式本身中。 \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";
}
< / p>
像这样:
{{1}}
答案 2 :(得分:1)
答案 3 :(得分:0)
你可以试试这个:
^(\d+)\..*\.\1$
\1
匹配与第一个捕获组最近匹配的文本相同的文本。
输入:
123.XY12345.123