首先可以肯定的是,用 ${1} 总没错,特别是对于不可预知的字符串的替换,必须如此。
然后,这也是比较奇怪的问题,由于Au3版本使用的正则引擎的差异,带来不同的结果可以理解,但是这里却很难预料,居然对不同的汉字有分别对待…
以下是各个版本的测试,使用如下的最简测试代码Local $S1 = '1'
Local $Test = StringRegExpReplace($S1, '(\d)', '第\1小题') & @LF & _
StringRegExpReplace($S1, '(\d)', '第\1大题') & @LF & _
StringRegExpReplace($S1, '(\d)', '第\1笑题') & @LF & _
StringRegExpReplace($S1, '(\d)', '第\1a题') & @LF & _
StringRegExpReplace($S1, '(\d)', '第\1题') & @LF & _
StringRegExpReplace($S1, '(\d)', '第\1题目') & @LF & _
StringRegExpReplace($S1, '(\d)', '第\1试过') & @LF & _
StringRegExpReplace($S1, '(\d)', '第\1XXX')
MsgBox(0, '替换结果', $Test)
各版本用动画显示直观点,可以看到明显的差异 |