关于技术交流,我想到的是,除了介绍技术本身,还需要介绍它的使用场景,用和不用它有什么差别,在开发过程中的常用使用方式是什么,有什么需要注意的问题这些方面。这些都需要大家在开发的过程中去总结,在网上多找一些资料看看。比如今天的正则表达式号称是程序员的利器,用好了能事半功倍。之前用到的场景主要有:
- xsd校验中校验模板的编写,这个类似于邮箱验证,手机号码验证等功能。
- 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)
- 各类解析器,比如自己写一个markdown解析渲染器,大量使用正则表达式。
- 网页样式转换,信息提取,网页爬虫软件。通过ajax方式抓取的网页,需要将里面的数据取出来,然后插入到自己的页面中。之前做过一个将多个节点监控界面抓取到一个综合的页面进行展示的程序。
- hy的二级调度里面有文件名匹配规则,里面用的是正则表达式。
- 之前写过一个字典软件,从灵格斯词霸里面把单词说明抓取出来,然后转换成wpf能够渲染的xaml,这样就可以随自己想要的方式来美化字典了。
- 在写文档和代码的过程本身中也经常使用正则表达式。比如要批量的将图1,图2换乘图后面跟章节号和章内编号这样的方式。可以用到word里面的正则表达式。比如在idea或vscode编辑器里面批量删除文档中多余的空格,空行,删除编号,行号等等。
- 在linux的命令行中也很常用,grep,vim,sed命令中可见。比如我们碰到需要把exe目录下所有插件的引导文件里面的目录都改了的情况,就可以用sed命令:
sed -i 's/旧的内容/新的内容/g' *.V10_00
sed -i 's#/pfds#/tm/moc/g' *.V10_00
……