2018-5-20-C#-BBcode-转-Markdown
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
C# BBcode 转 Markdown
|
lindexi
|
2018-05-20 14:58:57 +0800
|
2018-2-13 17:23:3 +0800
|
C#
|
本文告诉大家一个简单的方法从 BBcode 转为 Markdown
本文的方法都是使用正则转换,现在支持的代码只有很少的常用标签,如果大家发现有转换失败的,请帮我修改代码,估计代码我不会进行修改。
最重要的就是转换 url 和 image,那么主要就告诉大家如何转换这两个
private static string ConvertUrl(string str)
{
var regex = new Regex(@"\[url=(.+?)\]((?:.|\n)+?)\[\/url\]");
return regex.Replace(str, "[$2]($1)");
}
这就是转换 url 的代码,里面用了正则。一般使用正则拿到的数据就是(里的数据,如上面的代码,可能看起来有些复杂,那么用下面的代码告诉大家。
例如 需要拿出 123lindexifoo中的 lindexi ,那么正则可以这样写
123(lindexi)foo
如果需要拿到 lindexi ,可以使用下面代码
var regex = new Regex(@"123(lindexi)foo");
if (regex.Match(str).Groups[1].Value == "lindexi")
{ }
实际使用会在 regex.Match 之后判断是否成功,而不是直接拿出来。从上面代码可以看到我使用了1而不是0,那么下面的代码拿到的字符串?
var regex = new Regex(@"123(lindexi)foo");
str = regex.Match(str).Groups[0].Value;
这个 str 拿到是 123lindexifoo 就是原来匹配到的所有字符串。
如果需要替换某个字符串,可以使用下面的代码
str = "123lindexifoo";
var regex = new Regex(@"123(lindexi)foo");
str = regex.Replace(str, "csdn"); str == "csdn"
如果想把上面的字符串替换为 lindexi csdn ,那么可以使用下面代码
str = "123lindexifoo";
var regex = new Regex(@"123(lindexi)foo");
str = regex.Replace(str, "$1csdn");
可以看到上面的替换使用了 $1 ,这个就是第一个匹配拿到的字符串。如果需要拿第二个,就是使用$2,所以做这个很简单
从上面的代码可以看到,转换 image 可以使用代码
var regex = new Regex(@"\[img\]((?:.|\n)+?)\[\/img\]");
return regex.Replace(str, "");
转换其他的代码上传到 github ,如果是在我博客可以直接看到
<script src="https://gist.github.com/lindexi/3ba74c909b23d6426c779d0a8eb435c3.js"></script>
2018-5-20-C#-BBcode-转-Markdown的更多相关文章
- OSC Source Code Innovation Salon(2018.10.20)
时间:2018.10.20地点:北京 朝阳 浦项中心B座2层
- C# BBcode 转 Markdown
本文告诉大家一个简单的方法从 BBcode 转为 Markdown 本文的方法都是使用正则转换,现在支持的代码只有很少的常用标签,如果大家发现有转换失败的,请帮我修改代码,估计代码我不会进行修改. 最 ...
- PCB 所建不凡 AWS 技术峰会2018 • 深圳站 2018.9.20
在去[AWS 技术峰会2018 • 深圳站]之提前并没有AWS提前做功课,主要PCB这行业基本自己搭服务器搭应用,不会买云服务器.由于没用过企业级的云服务器,对云这方面还是了解还是非常有限的. 市面上 ...
- 2018.8.20 Python之路---常用模块
一.re模块 查找: re.findall(‘正则表达式’,‘字符串’) 匹配所有符合正则表达式的内容,形成一个列表,每一项都是列表中的一个元素. ret = re.findall('\d+','sj ...
- 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)
i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...
- 2018.9.20 Educational Codeforces Round 51
蒟蒻就切了四道水题,然后EF看着可写然而并不会,中间还WA了一次,我太菜了.jpg =.= A.Vasya And Password 一开始看着有点虚没敢立刻写,后来写完第二题发现可以暴力讨论,因为保 ...
- 2018.6.20 Java考试试题总结(Java语言基础与面向对象编程)最新版
Java考试试题总结 一.单选题(每题1分 * 50 = 50分) 1.java程序的执行过程中用到一套JDK工具,其中javac.exe指( B ) A.java语言解释器 B.java字节码编译器 ...
- 2018.5.20 oracle强化练习
--现在有一个商店的数据库,记录客户以及购物的情况, 商品表goods (商品号 goodsid varchar2(8) 商品名 goodsname varchar2(20) 单价 unitprice ...
- 【2018.10.20】CXM笔记(思维)
1. 给你个环状字符串,问从哪个地方拆开能使它的字典序最小. 先预处理任意子串的哈希值. 然后枚举拆点,将它与当前最优的拆点比较谁更优(就是从哪拆的字典序更小),具体方法是二分+哈希找出两串最长的相同 ...
- 【2018.9.20】JOI 2017 Final T3「JOIOI 王国 / The Kingdom of JOIOI」
题目链接 题目描述 JOIOI 王国是一个 $H$ 行 $W$ 列的长方形网格,每个 $1\times 1$ 的子网格都是一个正方形的小区块.为了提高管理效率,我们决定把整个国家划分成两个省 $JOI ...
随机推荐
- 每次当浏览到网页,点击tab标签又回到顶部去了!
通常tab的标签使用a链接,而a链接的href值为#,这是一个锚点的属性,因此他会跳转到网页的顶端.如果你的tab包含一个id=tab,也可以设置为href="#tab"这样他就会 ...
- JMeter-性能测试之报表设定的注意事项
在使用 Jmeter 执行性能测试时,需要屏蔽以下模块: 结果树 图形结果 断言 具体的说明,可以见官网:http://jmeter.apache.org/usermanual/component_r ...
- 华为RH2288V3服务器部署指南
一.配置好局域网 首先配置好局域网,将电脑和服务器通过网线直连,服务器默认IP192.168.2.100,因此电脑本地的IP需要设置一下改为和服务器同一网段: 二.登录导控制页面 浏览器中输入服务器的 ...
- handy源码阅读(二):EventsImp类
EventsImp用于完成事件的处理. class EventsImp { EventBase* base_; PollerBase* poller_; std::atomic<bool> ...
- MyCAT操作MySQL示例之E-R表
接着上一篇继续..... E-R 关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上,即子表依赖于父表,通过表分组(Table Group)保证数据 Join 不会跨库操作. 表分 ...
- ckeditor富文本编辑器的使用和图片上传,复制粘贴图片上传
自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了.一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器) ...
- CF286E Ladies' Shop FFT
题目链接 读完题后,我们发现如下性质: 在合法且和不超过 $m$ 的情况下,如果 $a_{i}$ 出现,则 $a_{i}$ 的倍数也必出现. 所以如果合法,只要对所有数两两结合一次就能得到所有 $a_ ...
- [CF959B]Mahmoud and Ehab and the message题解
超级大模拟 直接用map吧string对应到编号上来,然后在开个数组把每个编号对应到每个可以互相转化区块上来,预处理出区块的最小值,使用时直接取最小是即可 代码 #include <cstdio ...
- Android中对Apk加固(加壳)续篇之---对Native层(so文件)进行加固
有人说Android程序用Java代码写的,再怎么弄都是不安全的,很容易破解的,现在晚上关于应用加固的技术也很多了,当然这些也可以用于商业发展的,梆梆加密和爱加密就是很好的例子,当然这两家加固的Apk ...
- p5414 [YNOI2019]排序
分析 这是真正的云南oi/px 我们需要考虑保留一段不降子序列 剩余的自由往前往后移动 所以dp一下即可 代码 #include<bits/stdc++.h> using namespac ...