为了防止用户用恶意代码留言,大部分论坛都不允许使用HTML语句做为回帖内容(或者进行了转义),但是这限制了用户的发挥,比如用户无法粘贴超链接、无法粘贴图片地址,无法把自己发送的文字进行加粗,改变字号。为了解决这个问题,人们设计出了UBB代码,它提供了有限的、无危害的功能,用户只要遵循代码规则就可以实现用户想要的功能。 UBB语法:http://baike.baidu.com/view/35.htm?fr=ala0_1_1。

  • [URL=http://www.baidu.com]百度网[/URL]替换为<a href="http://www.baidu.com">百度网</a>。
  • [img]http://www.baidu.com/a.jpg[/img]→<img>。
  • [b]aaa[/b]→<b>aaa</b>
public static void main(String[] args)
{StringBuffer sb = new StringBuffer();sb.append("[URL]http://www.cownew.com[/URL]\n");sb.append("[IMG]http://www.cownew.com/pic.jpg[/IMG]\n");sb.append("[I]Open source![/I]\n");sb.append("[B]important![/B]\n");System.out.println(txUBB(sb.toString()));
}
private static String txUBB(String ubb)
{String html = ubb;html = replace("\\[URL\\](.+)\\[/URL\\]",html,"<A HREF=$1 TARGET=_blank>$1</A>");html = replace("\\[EMAIL\\](.+)\\[/EMAIL\\]",html,"<A HREF=mailto:$1>$1</A>");html = replace("\\[IMG\\](.+)\\[/IMG\\]",html,"<IMG SRC=$1>");html = replace("\\[I\\](.+)\\[/I\\]",html,"<i>$1</i>");html = replace("\\[B\\](.+)\\[/B\\]",html,"<b>$1</b>");return html;
}
private static String replace(String regEx, String ubb, String replacement)
{Pattern p = Pattern.compile(regEx);Matcher m = p.matcher(ubb);return m.replaceAll(replacement);
}

练习:开发UBB翻译器。实现 [B]、 [URL]就可以。提供Winform界面,输入UBB代码,转换为html内容的字符串,然后赋值给WebBrowser控件的DocumentText属性。

  • [b]fff[/b]→<b>fff</b>
  • [url=http://www.baidu.com]百度[/url]→<a href="http://www.baidu">百度</a>

多次Replace,每次处理一个替换。注意:[是元字符,需要转义。

测试文本:你好,我发现一个[b]新网站[/b],[b]大家[/b]来看呀[url=http://www.qq.com]秋秋[/a],另外一个有时间也可以看看[url=http://www.rupeng.com]如鹏[/url],还有[url=http://www.itcast.cn]传智播客[/url]。吼吼!

正则表达式(18)——字符串替换案例:UBB翻译相关推荐

  1. linux c中字符替换函数,Linux C 支持正则表达式的字符串替换函数

    [root@localhost src]# cat a.c /** * Linux C 支持正则表达式的字符串替换函数 * * Author: cnscn@163.com * Homepage: ww ...

  2. python字符串正则替换_Python用正则表达式进行字符串替换方法

    Python正则表达式在使用中会经常应用到字符串替换的代码.这篇文章主要介绍了Python正则表达式如何进行字符串替换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. Python正则表达式在使用 ...

  3. js 正则表达式奇偶字符串替换_Python中的正则表达式及其常用匹配函数用法简介...

    今 日 鸡 汤 此曲只应天上有,人间难得几回闻. /1 前言/ 这次给大家主要是介绍Python中的正则表达式,及其相关函数的基本使用方法,并且捎带一些正则表达式给我们带来的便利. /2 简介/ Py ...

  4. js 正则表达式奇偶字符串替换_JS利用正则配合replace替换指定字符

    替换指定字符的方法有很多,在本文为大家详细介绍下,JS利用正则配合replace是如何做到的,喜欢的朋友可以参考下 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一 ...

  5. js 正则表达式奇偶字符串替换_js正则表达式replace替换变量方法

    JavaScript正则实战(会根据最近写的不断更新) 1.javascript 正则对象替换创建 和用法: /pattern/flags 先简单案例学习认识下replace能干什么 正则表达式构造函 ...

  6. 正则表达式:字符串替换

    将两个#之间的字符,替换成下划线加空格,要求原字符的长度应该和_ 的数量一致. private static void getUnderLine() {String str = "This ...

  7. python使用正则表达式实现字符串替换

    python的字符串提供了replace方法,可以将子串替换成其他字符串,例如下面的代码 name= 'flask_script' name = name.replace('_', '-') prin ...

  8. Qt 使用正则表达式进行字符串替换

    Qt使用类QRegExp封装正则表达式,这里举一个例子. #include <QRegExp>int main() {QRegExp re = "<a href=\&quo ...

  9. Java开发经典实战!java正则表达式匹配字符串替换

    零基础如何学习Java? 首先,你要明白一点,Java入门不难! 无论你是从事哪个行业,兴趣一定是最好的老师,也是你学习的动力. 学习方式1:自学 自学模式其实我个人不建议绝大部分的人选择,因为自学是 ...

  10. Python正则表达式如何进行字符串替换实例

    Python正则表达式如何进行字符串替换实例 Python正则表达式在使用中会经常应用到字符串替换的代码.有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获. ...

最新文章

  1. 【硬件基础】有源蜂鸣器与无源蜂鸣器
  2. Java中的同步集合与并发集合有什么区别?
  3. ETL数据处理后的业务分析(一)
  4. JavaScript基础学习--05自定义属性、索引值
  5. 编辑器扩展_开发者必备,可扩展编辑器tui.editor和TOAST UI组件家族
  6. 开源软件公司易犯的 5 大错误,又该如何避免?
  7. flask查询User,返回对象列表,提示ypeError: Object of type ‘bytes‘ is not JSON serializable解决办法
  8. windows 找不到本地配置文件用临时配置文件让您登录
  9. linux如何进入opt目录,Linux 程序安装目录 /opt 目录和 /usr/local 目录
  10. wampserver下修改mysql root用户的登录密码
  11. iphone clearColor 不起作用问题
  12. 在CentOS中安装MySql数据库教程
  13. python实现黑客帝国动画效果
  14. matlab多元函数求最优,MATLAB多元函数导数求极值或最优值
  15. 有人说做运营死路一条,但他没搞清运营是做什么的!
  16. 什么是power bi
  17. 常见花材的固定的方法有哪些_别再傻傻只知道使用花泥了,这4种纯天然花材固定方法你该试试!...
  18. android swf webview,android webview播放swf文件
  19. matlab开发环境,Windows 下开源开发环境的搭建
  20. linux进行端口跟踪,(五)洞悉linux下的Netfilteriptables:如何理解连接跟踪机制?【上】...

热门文章

  1. 奈何心是安定心,命总是流浪命
  2. 开闭鸿蒙都只为风味情浓,[红楼梦引子]开辟鸿蒙, 谁为情种? 都只为风月情浓。 趁着...
  3. 渗透测试技巧总结更新篇2
  4. 编程求球的体积和表面积(c语言)
  5. Youtube上播放量前100的单曲整理
  6. C-Cheating and Stealing_2021牛客暑期多校训练营5
  7. [phyton]文件的简单读写练习
  8. Http免费升级Https详细步骤【Let's Encrypt】
  9. 考研数据结构——买卖青蛙
  10. Java将英文句子分解为单词