我正在使用这个功能正则表达式\/.*?([^:\/\s]+)
似乎在其他语言中运行良好,但Go似乎并不喜欢它。
这样做是在/
之间提取URL字符串的第二部分
例如path/deeper/very/deep/file.html
,我只想将/deeper
替换为其他内容。
这是我的代码
finalPath := "path/deeper/very/deep/file.html"
reg, _ := regexp.Compile("\\/.*?([^:\\/\\s]+)")
fmt.Println(reg.ReplaceAllString(finalPath, "<fruit>"))
我有什么问题吗?
===编辑===
如果有人感兴趣,对我来说好的答案是(^[^\\W\/]*)\/([^\\W\/]*)
然后我就把第一部分放回去了。
===编辑2 ===
我看到Go社区真的不宽容......问题遵循规则,它清晰简洁。对于那些真正偏离主题或真正错误的问题,应该保留下注。为什么你发现这个问题如此离谱的简要解释值得赞赏
只需用golang搜索所有新问题,你会看到有罕见的赞成票,大多数都被投票了!
答案 0 :(得分:3)
你需要使用\\s
而不是\s
(或者将整个事物放在反引号中,这样你就不必加倍反斜杠了。)