【Linux】正则表达式的简单学习笔记

  正则表达式是平台无关的,基本上高级语言都支持正则表达式。通常被用来检查、替换那些符合某个模式(规则)的文本。
  上面已经说了,正则表达式是平台无关的,把他放在Linux的专栏里,主要原因是在测试和学习时,是在Linux的环境下进行的,所以把这篇文章归档在Linux专栏中。但应该知道,正则表达式不仅限于Linux。
  下面来正式学习正则表达式的知识。

  • 正则表达式的基本要素
     ①字符类
     ②数量限定符
     ③位置限定符
     ④特殊符号
  • 基本正则与扩展正则
     grep
     egrep
     其他常用通用字符及其替换
  • 一个在线正则表达式工具
    在线正则表达式测试

  • 正则表达式的基本要素

  字符类

字符 含义
. 匹配任意一个字符,比如a.可以匹配ab或者ac
[ ] 匹配[ ]中任意一个字符,比如[1234]可以匹配12或123或1234
^ 搭配[ ]使用,表示匹配除[ ]中的字符,比如[^1234]可以匹配56或89,但不能匹配12
- 搭配[ ]使用,表示范围,比如匹配数字和字母组成的字符可以写作[a-zA-Z0-9]

  数量限定符

字符 含义
? 紧跟在前面的单元匹配零次或一次
+ 紧跟在前面的单元匹配一次或多次
* 紧跟在前面的单元匹配零次或多次
{n} 紧跟在前面的单元精准匹配n次
{m,n} 紧跟在前面的单元匹配m至n次
{m,} 紧跟在前面的单元匹配至少m次
{,n} 紧跟在前面的单元匹配至多n次

数量限定符只限定紧跟在他前面的一个单元。比如abc*表示c出现零次或多次,(abc)*表示abc整体出现零次或多次。

  位置限定符

字符 含义
^ 匹配行首的位置,比如^a表示匹配以a开头的那一行
$ 匹配行末的位置,比如$a表示匹配以a结尾的那一行
\< 匹配单词开头的位置,比如\< he表示匹配以he开头的单词
\> 匹配单词结尾的位置,比如he\>表示匹配以he结尾的单词
\b 匹配单词开头或结尾的位置,比如\bhe匹配以he开头的单词,he\b匹配以he结尾的单词
\B 匹配非单词开头和结尾的位置,比如\Bhe匹配不以he开头的单词

  特殊符号

字符 含义
\ 转义字符
() 将表达式的一部分用()组成一个单元,可以对整个单元使用数量限定符
| 连接两个子表达式,表示或的关系
  • 基本正则与扩展正则
基本正则grep ?+{}()为普通字符,经\转义后为特殊
扩展正则egrep ?+{}()为特殊字符,经\转义后为普通

grep -E 表示扩展正则。
grep是贪婪模式,即尽可能多的匹配符合条件的内容。

  其他常用通用字符及其替换

字符 匹配 替换正则
\d 数字字符 [0-9]
\D 非数字字符 [^0-9]
\w 数字字母下划线 [a-zA-Z0-9_]
\W 非数字字母下划线 [^\w]
\s 表格、换行等空白区域 [\r\t\n\f]
\S 非空白区域 [^\s]

一个正则匹配手机号的表达式:
‘^1[345789][0-9]{9}$’

猜你喜欢

转载自blog.csdn.net/ananbei/article/details/80919401