• 正则表达式的应用


    从网上复制了一段代码,不料代码的每一行前面都有行号加“.”,我要正确运行程序,必须得把这些多余的东西去掉。

    怎么去掉呢?

    首先想到的是手动去掉。

    看了下,有几百行代码,那需要多长时间,才能去掉?显然,这方法可行,但是太笨了,如果一个程序员,太勤劳了,那就不聪明。

    然后想到的是用vs编辑器打开,然后摁住“Alt”,可以竖向选择,然后一次性就去掉了。但是,我的电脑上内存不足,配置不高,不敢装vs,而是装了vs code。显然,这个方法不可行,不能杀鸡用牛刀啊。

    后来装了editplus,里面有正则匹配替换。今天我用Notepad来执行相同的任务。

    上面仅仅演示下,所以放了两行代码,点击按钮,执行结果如下:

    是不是,很神奇。
    当然,这只是正则小小的应用罢了,我临时想起来才用的。那我现在解释下这个正则表达式,对于不会写正则的朋友,又该如何是好?这是个问题。还好上面的正则,不难,可以借此机会一学。

    ^d+[.]

    ^位置匹配,匹配行的开头。

    d+专门用来匹配任意位正整数的,匹配上面的行号。

    [.]表示数字后面带. ,[]表示可匹配其中的一个字符,我用在这里是为了更清晰些,其实也可以去掉[]。如果数字后面不光是.,比如还有:此时我们可以用^d+[.:],中括号就用上派场了。如下图所示:

    如果数字后面,不仅一个字符,如下图所示:

     

    我们该如何处理呢?我们修改正则:^d+(?:.|:)+,用小括号把里面的字符包起来,小括号里面的竖线,表示or,那括号里面的?:又表示什么呢?这个就得对正则稍微了解多一点了。这个是只匹配,不捕获分组。默认带了小括号,是要分组的,影响正则的性能,另一方面,我们确实不想使用分组捕获的结果啊。我们只是单纯地匹配而已。如图:

    如果数字后面,有的有符号,有的没有符号,那我们又如何处理?不急,我们修改正则:^d+(?:.|:)*,*是量词,表示0个到多个,+表示至少一个,如图所示:

    好了,我就介绍到这儿,现实情况是复杂多变的,到时候根据具体情况,再修改正则。正则表达式强大之处有二,第一,任用户需求如此多变,我都能以不变应万变。第二,各门语言都支持正则,有的甚至是作为语言的一部分,如perl。

  • 相关阅读:
    MysQL使用一与Python交互
    WPF三大模板简介
    Java Servlet生成JSON格式数据并用jQuery显示
    JSP之应用Servlet过滤器进行身份验证
    Java调用SQL Server存储过程
    JSP之Cookie对象使用
    JSP之response对象使用
    JSP之静态include指令、动态Include指令
    JSP之使用useBean、setProperty、getProperty指令
    jspSmartUpload使用初步
  • 原文地址:https://www.cnblogs.com/wangqiang3311/p/5784826.html
Copyright © 2020-2023  润新知