zoukankan      html  css  js  c++  java
  • 正则表达式——替换

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

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

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

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

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

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

    解决方法思路:

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

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

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

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

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

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

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

    继续看

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

  • 相关阅读:
    Expert Shell Scripting
    tr [a-z] [A-Z]
    ssh
    scp
    sort 命令
    cut 命令使用
    oracle 对象权限 系统权限 角色权限
    从linux内核中学到的编程技巧 【转】
    2019.3.16 最小生成树之城市改造
    2019.1.23 01迷宫
  • 原文地址:https://www.cnblogs.com/zi-xing/p/4311075.html
Copyright © 2011-2022 走看看