2016-04-30 286 views
1

我有这个JS,我试图翻译到去功能:Golang分割字符串由空换行符

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

你可以通过样本输入输出将JS变成StackSnippet吗? – Laurel

回答

3

你的分隔符正则表达式不匹配,因为拆分一个完整的字符串和字符串的开始尝试。没有空格所以不是^\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) 

} 

这里这里工作示例:https://play.golang.org/p/be6Mf3-XNP