查找:(小时|千米)(\d+)(\1)
替换:$2$3/$1
我试了一下不行,是我写的不对还是压根不支持?
应该是支持的,发一下调试运行的截图看看
结果不变,如果把(\1)换成第一个括号的内容,就可以正常替换了
我想要的结果应该是变成“5千米/小时”
肯定是支持的,问题出在你对 后向引用 的理解上。
(小时|千米)(\d+)(\1) (小时|千米)(\d+)(小时|千米)
(小时|千米)(\d+)(\1)
(小时|千米)(\d+)(小时|千米)
你以为这两个正则是等价的,实际并不等价。 \1 引用的不是分组1的表达式,而是分组1的实际捕获内容。
(小时|千米)(\d+)(\1) 可以匹配 小时5小时 或者 千米5千米 ,但不能匹配 小时5千米 。
原来如此,明白了,非常感谢~~所以,我实际想要的,实现重复引用第一组表达式的内容,还有别的方法能实现吗?这里没办法提前定义变量,只能完全靠正则写
据我所知,木有~
唉,好吧,谢谢了~
如果想要提前定义变量,可以写代码,也就是c#表达式. 使用regex.replace