文档章节

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

攻城狮朋友圈
 攻城狮朋友圈
发布于 2015/06/13 14:11
字数 908
阅读 16
收藏 0
点赞 0
评论 0

原文:http://www.moilioncircle.com/release/016.know.regexp-grep-sed.html

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();
    }
}

我的收获

是时候显摆一下,每期视频,我的个人收获了。

速读了《精通正则表达式 (第3版)》和正则表达式经典实例》,
比较系统的了解了Regexp,原理和如何写出高性能的Regexp。
同时一直不太清楚的环视,贪婪,占有,也一并彻底吃透。

此外,更新了CSV标准定义,和bash转义中单双引号。
还有posfix的BRE和ERE的区别,之前老搞不清楚,主要靠试。

关于正则就说这么些吧。

© 著作权归作者所有

共有 人打赏支持
攻城狮朋友圈

攻城狮朋友圈

粉丝 4
博文 14
码字总数 2885
作品 1
大连
程序员
2017-12-9Linux基础知识(16)文本处理工具

我们简述一下上一章的内容,主要讲的是bash编程的基础,介绍了其编程类型,以及介绍了编程语言的类型什么是过程式编程和对象式编程,然后我们编写了第一个脚本程序以及如何运行的方式有那些,...

刘祥宇
2017/12/11
0
0
TextKit(图片混排)

一、TextKit 探究 1.1 TextKit的概述 在iOS7中,苹果引入了Text Kit——Text Kit是一个快速而又现代化的文字排版和渲染引擎。Text Kit在UIKit framework中的定义了一些类和相关协议,它最主要...

从訫开始_倾深爱
2016/09/23
36
0
JMeter正则表达式

正则表达式被用来检索、替换那些符合某个模式(规则)的文本。JMeter正则表达式或模式运用于JMeter测试计划中。 当我们创建测试计划时,使用正则表达式可以节省大量的时间并获得更大的灵活性。...

地空神一
2017/12/23
0
0
正则表达式与sed工具

1、正则表达式 通俗来讲,正则表达式是一种字符串的匹配方式,比如使用星号“*”来匹配任意的字符等。正则表达式实际上是一个匹配模板,当bash执行这个正则表达式时,就会将所有的输入数据与...

小呀小蜗牛
2016/02/02
137
0
使用正则表达式构造定制的HTML5输入框

正则表达式(点此在线编辑测试)是一个功能强大的灵活而简洁的匹配文本字符串的工具,比如匹配特定的字符、单词等。正则表达式通过一个语言规则来书写,通过正则表达式处理器来处理。维基百科...

王振威
2012/07/01
0
0
Linux学习笔记:grep、egrep

文本处理三剑客: grep系:grep 、egrep 、fgrep ,文本搜索工具,基于“PATTERN"对于给定的文本进行模糊搜索,grep系默认工作于贪婪模式下。 sed:Stream EDitor,流编辑器,行编辑器,文本...

何时心安
2017/04/14
0
0
bash编程及多命令

bash脚本编程: 编程?使用人类自然语言或机器语言进行程序源代码书写的过程 为什么要编程?为了能够让用户在使用计算机的时候,可以让计算机以非交互的方式完成某些任务;此时用户需要将此类...

小小殊童
2017/11/18
0
0
Linux 中如何打开一个大文本文件

在“大数据”时代,我们会经常遇到有大文本文件(上 GB 或更大)的情况。假设需要我们手工的搜索和编辑这些大文件,或者为了解决一些特定的问题而需要手工分析多个上 GB 的日志文件。传统的文...

dandan.fs
2014/02/13
0
0
grep用法简介之一

grep是Linux中个非常重要也是经常使用的文本搜索工具,最近又回顾学习了一遍,趁热自己总结一下。 Linux中关于grep的命令一共有三个(以centos6.4为例) grep :只支持基本正则表达式 egrep ...

bluezombiecn
2014/05/12
0
0
Python正则表达式指南

1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功...

元谷
2013/11/15
501
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、登录流程图 二、小程序客户端 doLogin:function(callback = () =>{}){let ...

公众号_好好学java
35分钟前
0
1
流利阅读笔记28-20180717待学习

“我不干了!” 英国脱欧大臣递交辞呈 雪梨 2018-07-17 1.今日导读 7 月 6 日,英国政府高官齐聚英国首相的官方乡间别墅——契克斯庄园,讨论起草了一份关于英国政府脱欧立场的白皮书。可是没...

aibinxiao
今天
6
0
OSChina 周二乱弹 —— 理解超算排名这个事,竟然超出了很多人的智商

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @-冰冰棒- :分享Ed Sheeran/Beyoncé的单曲《Perfect Duet (with Beyoncé)》 《Perfect Duet (with Beyoncé)》- Ed Sheeran/Beyoncé 手机...

小小编辑
今天
138
7
Android 获取各大音乐平台的真实下载地址

废话 电脑使用谷歌浏览器或者QQ浏览器的时候。。。。。。。说不清楚,还是看图吧 大概意思就是,只要网页上需要播放,只要能播放并且开始播放,这个过程就肯定会请求到相关的音乐资源,然后就...

她叫我小渝
今天
0
0
shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
1
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部