linux学习-正则表达式基础

“.”符号

点符号用于匹配除换行符之外的任意一个字符。例如:r.t可以匹配rot rut,但是不能匹配root,若使用r..t就可以匹配root、ruut、r t(中间是两个空格)等。下面的例子是从/etc/passwd中搜索出“包含r,紧跟着两个字符,后面在接t”的行。

grep ‘r..t‘ /etc/passwd

“”符号

“”符号用于匹配前一个字符0次或者任意多次,比如ab,可以匹配a,ab,abb等。“”符号经常和“.”符号在一起使用。比如“.”代表任意长度的不包含换行的字符。下面的例子是试图找到连续的r字母紧跟着字母t的行。由于在/etc/passwd中没有rt,rrt这样的匹配,所以该表达式实际上只找出了包含t的行(r匹配了0次)

grep ‘r..t‘ /etc/passwd


如果把上面的‘rt’换成‘r.t’,代表查找包含字母r,后面紧跟任意长度的字符,再跟一个字母t的行。如下所示:

grep ‘r.*t‘ /etc/passwd

“\{n,m\}”符号

虽然“”可用于重复匹配前一个字符,但却不能精确地控制匹配的重复次数,使用“{n,m}”符号则能更加灵活地控制字符重复的次数:
\{n,\} 匹配前面的字符n次,下列匹配的是包含root的行(r和t包含两个o)

grep ‘r.*t‘ /etc/passwd

{n,} 匹配前面的字符至少n次以上(含n次)

grep ‘ro\{0,\}t‘ /etc/passwd

“^”符号

匹配开头的字符,例如“^root”匹配的是以字母root开始的行
grep ‘^root‘ /etc/passwd

“$”符号

此符号用于匹配尾部,例如“abc$”代表以abc结尾的行。如果是"^$"则代表为空,因为^和$之间什么都没有。下面匹配的是以r开头,中间有一串任意字符,以h结尾的行。

grep ‘^r.*h$‘ /etc/passwd

“[]”符号

用于匹配方括号内出现的任一字符。比如单项选择题的答案,可能是A,B,C,D选项的任一种,用正则表达式就是[ADCD]。如果遇到比较大范围的匹配,比如说要是匹配任意一个大写字母,就需要使用“-”号做范围限定,写成[A-Z],要匹配所有的字母则写成[A-Za-z]
以匹配手机号为例,手机号是11位连续的数字,第一位一定是1,所以表示为“^1”;第二位可能是3(移动)或者8(联通),表示为“[38]”;后续9个任意数字,表示为‘[0-9]’,所以整个表达式写为“^1[38][0-9]{9}”

"\<"和“\>”

这两个符号分别用于界定单词的左边界和右边界。比如“\<hello”用于匹配hello开头的单词,而“hello\>”用于匹配hello结尾的单子。可以使用“\<hello\>”精确匹配hello这个单词

“\d”

匹配一个数字,等价于[0-9]

其他符号说明

\b 匹配单词的边界
\B 匹配非单词的边界
\w 匹配字母、数字和下划线,等价于[A-Za-z0-9]
\W匹配非字母、非数字、非下划线等价于[^A-Za-z0-9]
\n 匹配换行符
\r 匹配回车符
\t 匹配制表符
\f 匹配换页符
\s 匹配任何空白字符
\S 匹配任何非空白字符

原文地址:http://blog.51cto.com/11555417/2141094

时间: 2024-08-29 20:30:52

linux学习-正则表达式基础的相关文章

Linux学习 -- Shell基础 -- 概述

Shell是什么? 命令解释器 编程语言 Linux支持的Shell类型 cat /etc/shells 主要学习 bash 脚本执行方式 echo echo -e 单引号 -- 原始字符串  双引号 -- 支持转义字符串 \e[1;31m xxx  开启颜色 \e[0m    关闭颜色 首行:#!/bin/bash #写好注释 执行方式: 方式1 sh xxx.sh 方式2 chmod 755 xxx.sh  ./xxx.sh 或 绝对路径 Linux学习 -- Shell基础 -- 概述

Linux学习 -- Shell基础 -- Bash基本功能

历史命令 history -c   clear -w   写入 ~/.bash_history 默认保存1000条, 可在/etc/profile中修改 调用 Tab补全 命令.目录.文件 命令别名 alias 别名='原命令' 命令执行顺序: 绝对路径或相对路径 > 别名 > Bash的内部命令 > $PATH环境变量中找到的第一个命令(外部命令) 配置文件:/root/.bashrc 删除:unalias 别名 常用快捷键 输入输出重定向 标准输入输出 输出重定向 注意:2和>

linux学习---正则表达式与grep

正则表达式(Regular Expression(RE)) 是透过一些特殊字符的排列, 用以"搜寻/取代/删除"一列或多列文字字符串, 简单的说, 正则表达式就是用在字符串的处理上面的一项"表达式". 正则表达式并不是一个工具程序, 而是一个字符串处理的标准依据, 如果想要用用正则表达式处理字符串, 就要使用支持正则表达式的工具程序, 这样的程序有很多, 如vi, awk, grep, sed... grep 基本规则: grep [-acinv] [--color

bash shell学习-正则表达式基础 (笔记)

A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子坦荡荡,小人长戚戚" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版) 一.正则表达式基础 1.什么是正则表达式 正则表达式(Regular Expression, RE)是对字符串操作的一种逻辑公式,就是用一些事先定义好的特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串

Linux学习之基础篇

一.Linux学习的必备条件: 1. 计算器概论不硬件相关知识: 2. 先从Linux癿安装不挃令学起: 3. Linux操作系统的基础技能:『使用者.群组癿概忛』.『权限癿观忛』,『程序的定义』等等: 4. 务必学会vi文书编辑器: 5. Shell不Shell Script癿学习: 6. 一定要会软件管理员:Tarball/RPM/DPKG 等软件管理员的安装方式,对你来说重要的不行了.(嵌入式设备,学术研究单位) 7. 网绚基础癿建立:IP概念,路由的概念等等:

大数据学习初体验:Linux学习+Shell基础编程+hadoop集群部署

距离上次博客时间已经9天,简单记录下这几天的学习过程 2020-02-15 10:38:47 一.Linux学习 关于Linux命令,我在之前就已经学过一部分了,所以这段时间的linux学习更多的是去学习Linux系统的安装以及相关配置多一些,命令会一些比较常用的就够了,下面记录下安装配置Linux系统时的注意事项. 这里配置的虚拟机的内存为4g 使用的 CentOS-6.5-x86_64-minimal.iso 映射文件 在进入linux系统中时,需要将虚拟机的主机名修改成自己想要的名字,还要

Linux学习日记--基础命令(6)--grep及正则表达式

grep: Global search REgular expression and Print out the line.        作用:文本搜索工具,根据用户指定的"模式"对目标文本逐行进行匹配检查:打印匹配到的行:            模式:由正则表达式字符及文本字符所编写的过滤条件:            REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能:                分两类:         

Linux学习心得——基础知识(一)

Linux常用命令学习 一.pwd 作用:查看用户当前在什么目录下 二.cd 作用:进入到某目录 1.进入根目录:cd / 2.返回上级目录:cd .. 三.ls 作用:查看当前目录下的文件 1.列出当前目录详细文件信息:ls -l 2.若文件读写权限第一个字符为’d’表示为目录,非’d’为文件 3.人性化的展示文件列表:ls -lh 4.显示隐藏文件:ls -a 四.vim 作用:编辑文件 1.编辑文件:vim 文件名 2.编辑隐藏文件:vim .文件名 五.more 作用:终端下慢慢看文件内

Linux学习资料-基础正规表示法(grep)

基础正规表示法:   -------------------------------------------------------------------------------- grep 语法: [root @test /root ]# grep [-acinv] '搜寻字符串' filename 参数说明: -a :将 binary 档案以 text 档案的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :