我有这个JS功能,我正试图转换为Go:
function splitByEmptyNewline(str) {
return str
.replace(/\r\n/g, '\n')
.split(/^\s*\n/gm);
}
这是我到目前为止所得到的:
func splitByEmptyNewline(str string) []string {
strNormalized := regexp.
MustCompile("\r\n").
ReplaceAllString(str, "\n")
return regexp.
MustCompile("^s*\n").
Split(strNormalized, -1)
}
这不会返回与JavaScript版本相同的结果。所以我想知道我错过了什么?
我尝试使用双引号“和后向单引号`作为正则表达式。
答案 0 :(得分:2)
您的分隔符RegEx不匹配,因为您分割了一个完整的字符串,并且该字符串的开头不是空格。因此,您必须使用^\s*\n
:
\n\s*\n
func splitByEmptyNewline(str string) []string {
strNormalized := regexp.
MustCompile("\r\n").
ReplaceAllString(str, "\n")
return regexp.
MustCompile(`\n\s*\n`).
Split(strNormalized, -1)
}