博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式——替换
阅读量:4922 次
发布时间:2019-06-11

本文共 905 字,大约阅读时间需要 3 分钟。

说明:替换(删除)2个特殊字符间的字符串,同时把特殊字符也替换(删除)了。要求:一步到位。

关于这个问题,是我朋友,今天给我提出的。TA是用于微博正文的提取,大家都知道,微博正文的开始是以#……#开始的,实际问题就是删除#……#之间的内容包括2端的#.

大家平时用得最多的就是删除2个特殊字符之间的内容,但是特殊字符是保留的,但是这次却要删除了,问题就有些棘手了。

题外话:最近老是赶脚没一点尽头,不知道为什么,总是没精打采的,不知道干什么?假期怎么会这样,直到今天的朋友给我的问题,我明白了,原来学计算机的最怕的就是没有问题,没有问题,让我失去了挑战的滋味,所以生活变得平平。啊,终于明白了,原来我喜欢给自己找麻烦。O(∩_∩)O哈哈~

我截取了今天的一个微博,如下:

也就是把方框的内容删除掉。可以把这个当成字符串。额,今天爱耳日,挺形象的,今天3月3日

解决方法思路:

  1. 不管使用哪种语言,都有字符串的截取,也就是截取2个特殊字符间的字符串,然后替换为空就可以了,可是这所谓的替换并没有替换掉2个特殊字符。所以我们还需要使用第二次的特殊字符的替换,将特殊字符替换为空。第一次替换的是2个特殊字符之间的字符串为空,第二次替换的留下来的2个特殊字符。显然,这个解决方法不可行,需要两次替换,效率低。
  2. 有没有什么方法可以一步到位呢,有,但是需要使用正则表达式。方法(1)就不演示了,直接上结论。

     

因为没有其他语言的环境,所以就用PHP了,而且我的水平有限,解决问题中有瑕疵,以后还会回来解决的。正则没多大区别。

 

表达式(1):'/#([^\\#|.]+)#/'

即使文章中含有一个#,也没关系。那要是2个呢,就有问题了。如下:

表达式(2):'/\\[#\\]([^\\#|.]+)\\[#\\]/'

表达式(3):'/(.*#).*(.*#)/'

已看,结果正确,再往下看。

继续看

综上,表达式(1)是可以解决问题的,但前提是文章里不能有大于1个的#.我只能提供这些了,您要是有好的解决方法,请留言。谢谢。

转载于:https://www.cnblogs.com/zi-xing/p/4311075.html

你可能感兴趣的文章
怎样用好ZBrush中的PaintStop插件
查看>>
mysql触发器使用if..then sql elseif then end if; 转自 吴大哥
查看>>
OO模式-Singleton
查看>>
Java 手机短号
查看>>
Explain:H5+Webapp+MUI App 页面滑至到底部自动加载新的内容
查看>>
跨过边界的孩童( A Child Breaking Boundary)
查看>>
053第18
查看>>
Sass安装
查看>>
leetcode : comobination sum [经典回溯]
查看>>
leetcode : Add Bianry 基本功 字符转整数
查看>>
[HDOJ3333]Turing Tree(离线,树状数组)
查看>>
数据结构-冒泡法排序
查看>>
Java连接Linux服务器
查看>>
java中static关键字(转)
查看>>
Java实现Linux内查找服务器日志
查看>>
Java实现Linux上传&下载文件
查看>>
springboot 入门(转)
查看>>
微服务
查看>>
Springboot项目启动后访问不到Controller
查看>>
springboot 创建一个HelloWorld应用并且运行
查看>>