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)
}
版权声明:原创文章欢迎转载,不过要记得加出处哦

Go实战--golang中使用markdown(russross/blackfriday)

生命不止,继续 go go go !!!先来一点小小的插曲,博客关于go的uv量: 今天,跟大家一起学习分享的是在golang中如何使用markdown语法,当然是使用第三方库了russross/b...
  • wangshubo1989
  • wangshubo1989
  • 2017年09月08日 13:25
  • 3022

MarkDown CSS样式

有些markdown 的样式不好看,尤其是代码片段都没有边框,看着不直观,这是一篇仅有样式的文章。由于markdown的呈现形式是html,所以直接把以下部分添加到markdown中,即可更改默认的样...
  • zhanlanmg
  • zhanlanmg
  • 2015年08月24日 10:36
  • 11857

[CSDN_Markdown] 使用CSDN Markdown编辑器

简介最近CSDN支持Markdown语法写博客了,甚是欢喜。前几天写了一篇实验了下,感觉不错。准备写几篇文章介绍一下如何使用CSDN的Markdown编辑器写博客,不求全面,但求够用,望大家批评指正。...
  • bendanban
  • bendanban
  • 2015年03月11日 18:40
  • 10272

JSON 解析遇到的坑

在一次与客户的接口对接中,客户定义了一个变量cName,而后我定义cName并使用eclipse自动生成getter/setter,后来在联调的时候通过json传参却无法解析。 经过几次的变换,比...
  • binyu123402301
  • binyu123402301
  • 2016年09月08日 10:01
  • 207

显示隐藏table元素遇到的坑

在开发中,有时会有这样的需求,点击元素时显示某个table,一般这个时候我们第一时间想到的就是直接给table设置display为block,但很抱歉,这样做table虽然显示了,但有很多问题,tab...
  • sun_joey
  • sun_joey
  • 2018年01月20日 17:46
  • 85

MarkDown语法详细

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦!...
  • bk120
  • bk120
  • 2017年07月08日 23:23
  • 99

[CSDN_Markdown] Markdown基本语法

简介本文介绍Markdown的基本使用方法:使用标题、加粗、斜体、分割线、列表、引用。...
  • bendanban
  • bendanban
  • 2015年03月11日 21:28
  • 10015

markdown 转义

markdown 中如果遇到有字符与markdown 语法冲突  可以使用   反引号包裹  ``   需要转移的内容   ``...
  • ISaiSai
  • ISaiSai
  • 2016年05月27日 10:16
  • 3961

appium碰到的一些坑

以下错误是本人碰到的一些问题,也是碰壁了好久,查了好多资料,最后找到的解决方案错误1:java.lang.NoSuchMethodError: com.google.common.base.Throw...
  • weixin_38695860
  • weixin_38695860
  • 2017年09月01日 11:21
  • 211

【原创】一些正则表达式

正则表达式 给大家分享一些正则表达式,全是干货。请接收。。。 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n...
  • s_521_h
  • s_521_h
  • 2014年12月17日 09:28
  • 415
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:blackfriday markdown的自动换行 go lang 正则替换字符串时遇到的坑,转义解析其中的 $1 $name 等
举报原因:
原因补充:

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