blackfriday markdown的自动换行 go lang 正则替换字符串时遇到的坑,转义解析其中的 $1 $name 等

原创 2017年04月23日 12:37:02

在 使用go langblackfridaymarkdown 解释器时遇到换行问题,在他的配置里面没有回车自动换行这个配置(还是我没找到?),所以自己做了一个
风.foxwho
以下是错误的,改正的在最后

/**
    Markdown自动换行
 */
func MarkdownAutoNewline(str string) string {
    re, _ := regexp.Compile("\\ *\\n")
    str = re.ReplaceAllString(str, "  \n")
    //m.Content=strings.Replace(m.Content, "\n", "  \n", -1)
    reg := regexp.MustCompile("```([\\s\\S]*)```")
    //返回str中第一个匹配reg的字符串
    data := reg.Find([]byte(str))
    strs := strings.Replace(string(data), "  \n", "\n", -1)
    re, _ = regexp.Compile("```([\\s\\S]*)```")
    return re.ReplaceAllString(str, strs)
}

在go lang中,正则替换 函数名中不带Literal的字符时,默认转义/解析其中的 $1 $name 等,
所以这里的正则替换要使用ReplaceAllLiteralString 这个函数

改正后的

/**
    Markdown自动换行
 */
func MarkdownAutoNewline(str string) string {
    re, _ := regexp.Compile("\\ *\\n")
    str = re.ReplaceAllLiteralString(str, "  \n")
    //m.Content=strings.Replace(m.Content, "\n", "  \n", -1)
    reg := regexp.MustCompile("```([\\s\\S]*)```")
    //返回str中第一个匹配reg的字符串
    data := reg.Find([]byte(str))
    strs := strings.Replace(string(data), "  \n", "\n", -1)
    re, _ = regexp.Compile("```([\\s\\S]*)```")
    return re.ReplaceAllLiteralString(str, strs)
}
版权声明:原创文章欢迎转载,不过要记得加出处哦 举报

相关文章推荐

java 正则 块转义,忽略大小写,匹配换行模式,匹配先前匹配的文本(解释正则运行机制)

@author YHC //块转义:\Q \E \Q会抑制所有的元字符的含义 //,如果漏写了\E,那么从\Q开始之后的所有字符都将当作字面文本对待 ...

一个疑惑,为什么在二维数组里可以自动换行存入字符串,以及冒泡的趟数问题?

#include #include #include #include #include #undef EOF #define EOF -1 #define N 20 /* 函数fun,该函...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

iOS7.0 UILabel 字符串的绘制和自动换行

iOS7.0 的的字符串绘制方法由由iOS6.0 的 - (void)drawAtPoint:(CGPoint)point NS_AVAILABLE_IOS(6_0); - (void)drawI...

解决页面表格中长英文字符串不能自动换行的问题

有时候页面表格中内容太多,无奈怎么设置样式都调整不了,我只在表格内容全是英文的时候发现有这个问题,可以尝试通过下面的方法解决。 英文字母之间如果没有空格,系统认为这是一个单词,就不会自动...
  • qmyzch
  • qmyzch
  • 2016-11-02 15:11
  • 1000

C#自动换行公共类--字符串处理

package test.util; public class Slashes { /** * 方法 replace 可以把源字符串中的指定字符串替换为其它字符串。 * @param ...

XML特殊字符和空格 换行 转义符

由于XAML是一种XML,在里面写段文字都经常会遇到问题。 * 空格 关于XAML中是如何处理空格的,MSDN上给出了详细的描述:http://msdn.microsoft.com/en-...

XML特殊字符和空格 换行 转义符

由于XAML是一种XML,在里面写段文字都经常会遇到问题。 * 空格 关于XAML中是如何处理空格的,MSDN上给出了详细的描述:http://msdn.microsoft.com/en-...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)