广告

原创 基础的正则表达式--学习笔记

2017-7-11 10:07 227 0 分类: 软件与OS

正则表达式非常常见,它是一种文本匹配工具:

正则表达式就是能用某种模式去匹配一类字符串的公式,它是由一串字符和元字符构成的字符串。

所谓元字符,就是用以阐述字符表达式的内容、转换和描述各种操作信息的字符。

——《Linux系统命令及Shell脚本实践指南》



  1. " . "(点符号)用于匹配除换行符之外的任意一个字符。

  2. " * "(星符号)用于匹配前一个字符0次或任意多次:

    此处的" * "和bash环境里的" * "有区别,前者是匹配前一个字符,比如ab表示a、ab、abb、abbb……,后者表示0到无穷多个任意字符。bash环境里面的" . "和" "等,又称为通配符。

    正则表达式里的" .* ",才表示任意字符。


  3. " {n,m} "能够更加灵活地控制字符的重复次数:

    " {n} "表示匹配前面的字符n次,比如'ro{2}t';

    " {n,} "表示匹配前面的字符n次以上(含n次),比如'ro{0}t';

    " {n,m} "表示匹配前面的字符n次到m次,比如'ro{0,2}t'。


  4. " ^ "用于匹配开头的字符,比如'^root'表示以root开始的行。

  5. " $ "用于匹配尾部的字符,比如'abc$'表示以abc结尾的行,'^$'则表示空行。


  6. " [] "用于匹配方括号内出现的任一字符,比如'[ABCD]',或者'[A-D]'。

    如果括号内使用了" ^ ",则表示取反,比如'^[A-D]'。


  7. " \ "表示转义,比如'[\-]'。

  8. " < "和" >"用于界定单词的左边界和右边界,比如'<hello'用于匹配以" hello "开头的单词,而'hello>'用于匹配以" hello "结尾的单词。它们的组合用于精确匹配字符串。



还有一些不常用的基础正则表达式,现用现查即可。


广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
DiracFatCat 2018-09-05 12:14
【博客大赛】卡尔曼滤波学习笔记(11)从位置估计速度
卡尔曼滤波器,不仅仅是一个低通滤波器,否则也不会持续发展50年。 示例:桑先生需要测试高速列车的性能。测试的目的是判断列车在直线上能否保持80m/s的速度。速度和位置每0.1秒测量一次,...
DiracFatCat 2018-08-31 19:32
【博客大赛】卡尔曼滤波学习笔记(10)一个简单的示例
《Kalman Filtering: Theory and Practice Using MATLAB》第三章,看不懂,暂时略过。《Kalman Filtering: Theory and Pract...
DiracFatCat 2018-07-19 15:09
对sed命令的练习
sed是流编辑器。它每次处理一个输入,因此很有效率。官方手册:https://www.gnu.org/software/sed/manual/sed.html学习Linux命令,当然要阅读官方手册,所...
DiracFatCat 2018-06-19 15:10
【博客大赛】卡尔曼滤波学习笔记(八)可观测性和可控制性 ...
可观测性是指,在给定模型的情况下,动力学系统的状态是否由它的输入输出唯一确定。可观测性是系统模型的特征。如果传感器矩阵H是可逆的,则本系统可观测,因为有:如果传感器矩阵H某些时候是不可逆的,则本系统仍...
DiracFatCat 2018-06-19 10:56
【博客大赛】卡尔曼滤波学习笔记(七)Z变换
如果我们仅仅对离散线性系统感兴趣,那么就使用下面这个表达式:如果u是常量,那么可以写成:为了简化表达式,我们可以将上面写成:离散线性时不变系统的Φ求解,可以使用Z变换。(* 由于本人已经忘记了Z变换的...
DiracFatCat 2018-06-19 10:54
【博客大赛】卡尔曼滤波学习笔记(六)拉普拉斯变换
对于线性时变/时不变系统,求解Φ(t)有多种方式,拉普拉斯变换是其中一种。(* 由于本人已经忘记了拉普拉斯变换的内容,因此本节待续。)...
我要评论
0
0
广告
关闭 热点推荐上一条 /1 下一条