博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux的正则表达式
阅读量:5172 次
发布时间:2019-06-13

本文共 1651 字,大约阅读时间需要 5 分钟。

什么是正则表达式

  正则表达式是一种描述一组字符串的模式,为处理大量文本、字符串而定义的一套规则和方法,以行为单位进行处理。正则表达式分为两类:基本正则表达式(BRE)和扩展正则表达式(ERE)。在linux中使用正则表达式较多的有三个工具,分别为grep,sed和awk,这三个工具被称为linux文本处理的三剑客。

 

基本正则表达式

  字符匹配:

    .:匹配任意单个字符

    [ ]:匹配指定范围内的任意单个字符

    [^]:匹配指定范围外的任意单个字符

      几种特殊表示:

      

特殊符号

代表意义

[:alnum:]

代表英文大小写字符及数字,亦即 0-9, A-Z, a-z

[:alpha:]

代表任何英文大小写字符,亦即 A-Z, a-z

[:blank:]

代表空白键与 [Tab] 按键两者

[:cntrl:]

代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等

[:digit:]

代表数字而已,亦即 0-9

[:graph:]

除了空白字符 (空白键与 [Tab] 按键) 外的其他所有按键

[:lower:]

代表小写字符,亦即 a-z

[:print:]

代表任何可以被打印出来的字符

[:punct:]

代表标点符号 (punctuation symbol),亦即:" ' ? ! ; : # $...

[:upper:]

代表大写字符,亦即 A-Z

[:space:]

任何会产生空白的字符,包括空白键, [Tab], CR 等等

[:xdigit:]

代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字符

  匹配次数:

    *:匹配其前面的字符任意次(0次、1次或多次)

    .*:匹配任意长度的任意字符

    \?:匹配起前面字符0次或1次

    \+:匹配其前面字符1次或多次

    \{m\}:匹配其前面的字符m次

    \{m,n\}:匹配其前面字符最少m次,最多n次

    \{m,\}:匹配其前面字符最少m次

    \{,n\}:匹配其前面字符最多n次

  位置锚定:

    ^:行首锚定

    $:行尾锚定

      ^$:匹配空白行

    \<或\b:词首锚定

    \>或\b:词尾锚定

      \<PATTERN\>:匹配完整的单词

  分组及引用:

    \(\):将多个字符捆绑在一起,当做一个整体处理

    分组括号匹配到的内容,会被正则表达式引擎自动记录到内部变量中,变量为

    \1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符

    \2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符

 

扩展正则表达式

  字符匹配:

    .:匹配任意单个字符

    [ ]:匹配指定范围内的任意单个字符

    [^]:匹配指定范围外的任意单个字符

  次数匹配:

    *:匹配其前面的字符任意次(0次、1次或多次)

    ?:匹配起前面字符0次或1次

    +:匹配其前面字符1次或多次

    {m}:匹配其前面的字符m次

    {m,n}:匹配其前面字符最少m次,最多n次

    {m,}:匹配其前面字符最少m次

    {,n}:匹配其前面字符最多n次

  位置锚定:

    ^:行首锚定

    $:行尾锚定

    \<或\b:词首锚定

    \>或\b:词尾锚定

  分组及引用:

    ():分组;括号内的模式匹配到的字符会被记录于正则表达式引擎的内部变量中,变量为\1,\2等

  或:

    |:a|b表示a或者b

 

比较基本正则表达式和扩展正则表达式发现,基本正则表达式的很多符号需要转义“\”,而扩展正则表达式不需要

 

转载于:https://www.cnblogs.com/fox-zhang/p/8066719.html

你可能感兴趣的文章
ACE反应器(Reactor)模式(4)
查看>>
青蛙学Linux—Apache配置文件
查看>>
斯特林大数公式求阶乘位数
查看>>
[Python]装饰器总结
查看>>
1.1.零宽断言
查看>>
javascript中天气接口案例
查看>>
(转)Pycharm用鼠标滚轮控制字体大小
查看>>
4.字符串的扩展
查看>>
apt-get build-dep
查看>>
《结对-爬取大麦网演唱会信息-设计文档》
查看>>
《结对-爬取大麦网近期演唱会信息-开发过程》
查看>>
每个程序员都会的35个jQuery小技巧!
查看>>
JSP/Servlet基础
查看>>
dig 命令
查看>>
linux编程
查看>>
SpringMVC11文件上传
查看>>
mysql数据库名,表名大小写问题
查看>>
js---定时器
查看>>
接口测试全流程
查看>>
如何不传入对象就获得某对象的方法---ThreadLocal类
查看>>