016.科普.正则表达式及文本编辑

本文通过40分钟视频,深入讲解了正则表达式的应用,包括文本验证、提取、替换、分割等技巧,并展示了如何使用正则表达式进行CSV文件解析和根据SQL生成JavaBean。同时,提供了文本加工的命令集,如grep、find、xargs、sed、uniq、wc等,以及一些高级用法和Win32移植技巧。

016.jpg
题图:正则表达式,古老的智慧,多用作文本验证和加工。它看起来迷糊,学起来简单,用起来神奇。

016.科普.正则表达式及文本编辑

不等不靠,有囧有料。终日乾乾,或跃在渊。

正则表达式(RegExp),是攻城狮标配技能,
本期视频,让各位狮友40分钟从精通到入门 :)

@史荣久 / 2015-05-27 / CC-BY-SA-3.0

观看视频

内容摘要

■ 文本加工的例子(验证,提取,替换,分割):

  • 12个月(1[012]|[1-9]),千分位数\d{1,3}(,\d{3})*
  • CSV文件(标准格式)的域([^",]+|"(?:[^"]|"")+")
  • 只正则,根据SQL生成JavaBean,带注释和注解。
  • 不编码,统计spring-framework源码,达到以下目标:
  • 一共有多少个开发者(distinct @author)?
  • 每个开发者参与了多少行代码(粗略,有author就算)?

■ 正则表达式精要(基本上NFA各流派都适用):

  • 两大流派:PCRE(Perl兼容),Posix(BRE和ERE)。
  • 12+元字符^$?+*.\{[(|),2+特殊字符\^+[-]
  • 2种选择结构:字符串(X|Y|Z),字符[xyz]及否定[^xyz]
  • 字符串多选结构的否定式,需要用环视(零宽断言)(?!X|Y|Z)
  • 常用的字符组dwsb,\p{punct},块转义\Q\E(QuotE)。
  • 捕获组,反向引用,贪婪,非贪婪,量词,边界等。
  • .不能匹配换行符,小技巧[\s\S]*[\d\D]*
  • CRLF:[\r\n]+,\r?\n (记忆:return,n-r:a-d)。
  • java的String.replaceAll,split要注意转义。
  • java的replace时候,要注意替换字符串中的$
  • java的\1$1\k<name>${name}的用法。。
  • java的命名组,反向引用,超过9个引用时。

■ 文本加工的命令(Unix哲学,组合,精专):

  • 最牛的linux命令alias cd='rm -rf',玩笑加姿势。
  • 本期命令:grep,find,xargs,sed,uniq,wc
  • ag 超快的文本搜索命令,在700M代码用表达式不到3秒。
  • linux下,各种转义的规律(ERE,双引号,单引号)。
  • MS Window移植:CygwinGnuWin32unxutils

参考资源

■ 正则参考资料(括号内,为推荐程度):

■ 命令参考资料(应该记住,或者经常man):

■ 其他参考资料(Win32移植很犀利,RFC不是KFC):

欢迎围观

if (you.accept(MoilionCircle.SPIRIT)) {
    if(you.haveADL()){
        MoilionCircle we = you.search(MoilionCircle.SLOGAN);
        we.welcome(you);
    }
    if(you.share(this)){
        We.thank(you);
        We.mayFind7Moilion();
    }
}

转载于:https://www.cnblogs.com/moilioncircle/p/4533197.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值