regex 正则表达式匹配并替换字符串中的所有`\s或\\\s,而不是\\s或\\\s [已关闭]

ego6inou  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(107)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
我有一个包含\s\\\s的字符串(奇数个\后跟一个s),我想将其替换为\\s(偶数个\后跟一个s)。如果字符串包含\\s\\\\s,那么我们不会用任何东西替换它,因为它有偶数个\

**注意:**我使用golang

j5fpnvbx

j5fpnvbx1#

您可以使用(^|[^\\])((?:\\\\)*\\s)和替换字符串$1\\$2
它将匹配前面有奇数个反斜杠的s,并向它们添加1。

func main() {
    var re = regexp.MustCompile(`(?m)(^|[^\\])((?:\\\\)*\\s)`)
    var str = `s
\s
\\s
\\\s
\\\\s
\\\\\s
\\\\\\s`
    var substitution = "$1\\$2"
    
    fmt.Println(re.ReplaceAllString(str, substitution))
}

regex101演示

相关问题