基础正则表达式介绍与练习

一、什么是正则表达式

在做文字处理或编写程序时,用到查找、替换等功能,使用正则表达式能够简单快捷的完成目标。简单而言,正则表达式通过一些特殊符号的帮助,使用户可以轻松快捷的完成查找、删除、替换等处理程序。例如 grep, expr, sed , awk. 或 Vi 中经常会使用到正则表达式,为了充分发挥 shell 编程的威力,需要精通正则表达式。正规表示法基本上是一种『表示法』, 只要工具程序支持这种表示法,那么该工具程序就可以用来作为正规表示法的字符串处理之用。 也就是说,例如 vi, grep, awk ,sed 等等工具,因为她们有支持正规表示法, 所以,这些工具就可以使用正规表示法的特殊字符来进行字符串的处理。

二、正则表达式特殊符号

首先是正则表达式的特殊符号:

[:alnum:]代表英文大小写字母及数字
[:alpha:]代表英文大小写字母
[:blank:]代表空格和 tab 键
[:cntrl:]键盘上的控制按键,如 CR,LF,TAB,DEL [:digit:]代表数字 [:graph:]代表空白字符以外的其他 [:lower:]小写字母 [:print:]可以被打印出来的任何字符 [:punct:]代表标点符号 [:upper:]代表大写字符 [:space:]任何会产生空白的字符如空格,tab,CR 等 [:xdigit:]代表 16 进位的数字类型 

特殊符号实例

任意建立一个文本并编辑。或者以原有的文本做实验皆可。

$  touch regular_express.txt
$  vi regular_express.txt //或者  sudo gedit regular_express.txt

操作截图:

文本内容为:

"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn't fit me.
However, this dress is about $ 3183 dollars.
GNU is free air not free beer.
Her hair is very beauty.
I can't finish the test.
Oh! The soup taste good.
motorcycle is cheap than car.
This window is clear.
the symbol '*' is represented as start.
Oh!My god!
The gd software is a library for drafting programs.
You are the best is mean you are the no. 1.
The world <Happy> is the same with "glad".
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let's go.
# I am VBird

查找小写字母:

$ grep -n '[[:lower:]]' regular_express.txt

操作截图:

蓝色为匹配成功的字符

查找数字:

# grep -n '[[:digit:]]' regular_express.txt

操作截图:

三、语系对正则表达式的影响

由于不同语系的编码数据不同,所以造成不同语系的数据选取结果有所差异。以英文大小写为例,zh_CN.big5 及 C 这两种语系差异如下:

  • LANG=C 时: 0 1 2 3 4....ABCDE...Zabcde...z
  • LANG=zh_CN 时:0 1 2 3 4...aAbBcCdD.....zZ

在使用正则表达式[A-Z]时, LANG=C 的情况下,找到的仅仅是大写字符 ABCD..Z。而在 LANG=zh_CN 情况下,会选取到 AbBcCdD.....zZ 字符。因此在使用正则表达式时要特别留意语系。

由于我们一般使用的兼容与 POSIX 的标准,因此使用 C 语系。

四、简单例子 :ls 命令正则表达式应用

ls 命令是 linux 下最常用的命令。ls 命令是 list 的缩写,缺省下 ls 用来打印出当前目录的清单。

命令中‘ * ’号是正则表达式的一种,代表任意字符串。

$ ls
$ ls a*   //打印出以 a 开头的文件及内容或者目录
$ ls *s   //打印以 s 结尾的文件及内容或者目录
$ ls Pub* // Public 文件为空,所有没有打印任何内容
$ ls e*   //没有以 e 开头的文件,所有显示没有找到匹配项

操作截图:

基础正则表达式介绍与练习相关推荐

  1. linux vim编辑文本是 m,linux基础命令介绍四:文本编辑 vim

    本文介绍vim(版本7.4)的一般用法 vim是功能强大的文本编辑器,是vi的增强版. vim [options] [file ..] 使用vim编辑一个文件的最常用命令就是: vim file 其中 ...

  2. _linux文本过滤grep基础命令介绍

    在linux中经常需要对文本或输出内容进行过滤,最常用的过滤命令是grep grep [OPTIONS] PATTERN [FILE...] grep按行检索输入的每一行,如果输入行包含模式PATTE ...

  3. python基础—正则表达式即re模块

    正则表达式(regular expression),就是字符匹配模式,而这个匹配规则在我们写爬虫进行数据提取,或者进行数据可视化进行数据清洗时经常用到,多样化的匹配规则在复杂的字符的情况提取数据时助我 ...

  4. Linux基础命令介绍四:文本编辑vim

    本文介绍vim(版本7.4)的一般用法. vim是功能强大的文本编辑器,是vi的增强版. vim [options] [file ..] 使用vim编辑一个文件的最常用命令就是: vim file 其 ...

  5. NLP汉语自然语言处理入门基础知识介绍

    NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部 ...

  6. 【 MATLAB 】逆离散余弦变换(idct)的基础知识介绍

    基础知识介绍 逆离散余弦变换从离散余弦变换 (DCT) 系数中重建序列.idct 函数是 dct 函数的逆. The DCT has four standard variants. For a tra ...

  7. python基础知识点-Python入门基础知识点(基础语法介绍)

    计算机基础知识介绍 计算机核心部件分为CPU,内存,硬盘,操作系统 1.CPU:中央处理器,相当于人大脑 2.内存:临时存储数据.现在通常分为 8g和16g(不能替代硬盘的原因:1,成本高 2,断电即 ...

  8. Linux学习8之Shell编程--基础正则表达式

    1. 正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配的.grep.awk.sed等命令可以支持正则表达式. 通配符是用来匹配符合条件的文件名,通配符是完全匹配的.ls. ...

  9. Socket基础API介绍

    文章目录 1 Socket基础API介绍 1 Socket基础API介绍 我们先来看下使用Socket API建立简易TCP服务端和客户端的步骤: 用Socket API建立简易TCP服务端: 建立一 ...

最新文章

  1. 返回浏览器或div 顶部
  2. android studio 插件开发 FindByTag插件 局部情况下取代ButterKnife插件
  3. Python Django 正向查询与逆向查询
  4. Java实现递归回溯,解决八皇后问题,数据结构与算法
  5. linux安装之后缺少命令,centos7下安装缺少的命令依赖包
  6. 网络资产管理系统_网络版固定资产管理系统具备哪些优势?
  7. C++ 对象创建方式
  8. 读取金税盘数据库_金税盘无法连接数据库是怎么回事
  9. 产品经理必看书籍推荐
  10. HTML5前端设计——课表制作
  11. SpringBoot mysql房屋租赁系统4.0 租房系统源码(包远程安装
  12. python 证件照换背景色(蓝底->白底,蓝底->红底)
  13. Revit API 2018调试闪退
  14. 【堡塔企业级防篡改-重构版】使用手册
  15. AWS CLI 安装配置
  16. Java使用Spire.Doc实现Word文档添加图片水印
  17. android画cci指标代码,大智慧CCI画线指标源码 副图公式
  18. 爬虫第二讲:Beautiful Soup库
  19. [渗透教程]-001-信息收集-第三方软件
  20. ORA-00923: 未找到要求的FROM关键字

热门文章

  1. 用筛选法求100之内的素数
  2. 线性表------栈
  3. php的foreach
  4. 百善计算机学习,党建引领学做合一,志愿服务助力乡村振兴——计算机工程学院开展“百善孝为先”主题宣传文化墙墙绘涂鸦活动...
  5. java 设计作业——简单计算器
  6. 阶乘因式分解(一) -- ACM解决方案
  7. 每日一题:leetcode190.颠倒二进制位
  8. 文件操作(解密加密)
  9. java招聘职位描述,附学习笔记+面试整理+进阶书籍
  10. MMKV集成与原理,吊打面试官系列!