以下是在线正则测试中的输入输出:
![TIM截图20180205145850.png](https://static.studygolang.com/180205/ec28e1f98897ddef843cb5421a713214.png)
可是用go去执行就出现错误了,输出有问题,单单输出`$1`或者`第$1`是没问题的,但是`$1章`和`第$1章`是有问题的,头疼了挺久,求解析。
代码:
s := "第1节,第2节,第3节,第4节,第5节,第6节,第7节,第8节,第9节"
r, _ := regexp.Compile(`第([0-9])节`)
s = r.ReplaceAllString(s, `第$1章`)
fmt.Println(s) // 第,第,第,第,第,第,第,第,第
*题外话:*原谅我不会陈述问题,像这种问题,如果你想去谷歌,该怎么搜,我是类似这样搜的:“go 正则替换$结果错误”,应该$是功能符或者防止xxs被屏蔽了,所以搜不出想要的结果。 -- 一个很喜欢谷歌,但是经常遇到类似问题不会简短陈述问题的小惆怅
<a href="/user/waini1110" title="@waini1110">@waini1110</a> 对 这个结论我也总结出来了 不同语言实现正则的方式略有不同
就像中文匹配 基本用开发语言都可以直接写中文匹配 但是有的正则本身是不支持中文字符的匹配 只能转化为其他编码格式
#6
更多评论
``s = r.ReplaceAllString(s, `第$1章`)`` 替换成 ``s = r.ReplaceAllString(s, `第${1}章`)``
#1