关于正则表达式

关于技术交流,我想到的是,除了介绍技术本身,还需要介绍它的使用场景,用和不用它有什么差别,在开发过程中的常用使用方式是什么,有什么需要注意的问题这些方面。这些都需要大家在开发的过程中去总结,在网上多找一些资料看看。比如今天的正则表达式号称是程序员的利器,用好了能事半功倍。之前用到的场景主要有:

  1. xsd校验中校验模板的编写,这个类似于邮箱验证,手机号码验证等功能。
  2. xml文档格式转换,如下:
    以下代码的运行结果是:
import re
input='''
<animals>
<animal>
    <par n="kind">dog</par>
    <par n="legs">4</par>
  </animal>
  <animal>
   <par n="kind">bird</par>
   <par n="legs">4</par>
  </animal>
</animals>'''

print input.sub(r'<par n="(.*?)">(.*?)</par>', r'<\1>\2</\1>', input)
  1. 各类解析器,比如自己写一个markdown解析渲染器,大量使用正则表达式。
  2. 网页样式转换,信息提取,网页爬虫软件。通过ajax方式抓取的网页,需要将里面的数据取出来,然后插入到自己的页面中。之前做过一个将多个节点监控界面抓取到一个综合的页面进行展示的程序。
  3. hy的二级调度里面有文件名匹配规则,里面用的是正则表达式。
  4. 之前写过一个字典软件,从灵格斯词霸里面把单词说明抓取出来,然后转换成wpf能够渲染的xaml,这样就可以随自己想要的方式来美化字典了。
  5. 在写文档和代码的过程本身中也经常使用正则表达式。比如要批量的将图1,图2换乘图后面跟章节号和章内编号这样的方式。可以用到word里面的正则表达式。比如在idea或vscode编辑器里面批量删除文档中多余的空格,空行,删除编号,行号等等。
  6. 在linux的命令行中也很常用,grep,vim,sed命令中可见。比如我们碰到需要把exe目录下所有插件的引导文件里面的目录都改了的情况,就可以用sed命令:

sed -i 's/旧的内容/新的内容/g' *.V10_00
sed -i 's#/pfds#/tm/moc/g' *.V10_00
……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值