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

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

正则表达式(一)

  1. 基本语法

    1)行的起始和结束

    **脱字符号^** : 代表一行的开始    **美元符号$** : 代表一行的结束exp:    ^cat: 以cat开头的行        cat$:以cat结束的行        ^$:空行

    注意: 匹配的是一个位置 而不是具体的文本

    2)字符组

    字符组[…]: 列出在某处希望匹配的字符 或的意思

    exp:   [Ss]mith 匹配Smith或者smith            
    匹配

    ...

    字符组元字符 - 表示一个范围

    exp:   [0123456789] = [0-9]        二十六个字符 = [A-Za-z]

    注意 只有在字符组内部连字符才是元字符 否则就只能匹配一个普通的字符符号而不是一个范围

    排除型字符组[^…]: 匹配任何未列出的字符

    exp:   [^1-6]:匹配除了1-6之外的任何字符        q[^u]:匹配字母q后面不是u的英文单词

    注意:排除型字符组表示‘匹配一个未列出的字符’ 而不是不要匹配列出的字符 如上面例子中的q[^u]就无法匹配 Iraq(q后面没有字符【手动忽略换行符】)和Qantas(Q为大写)

    3)用点号匹配任意字符

    点号 . : 用来匹配任意字符的字符组的简便写法

    exp:  需要搜索 16/11/19、16.11.19、16-11-19 可以使用16[-./]11[-/.]19 也可以尝试用 16.11.19 (不精确)注意:如果写成了[.-/]的话 由于-连字符出现在字符组内且不在字符组开头 所有表示的是范围 并不匹配

    4)多选结构

    **或|**:同时匹配其中的一个正则表达式exp:  gray|grey = gr(a|e)y 用括号来划定多选结构的范围    注意:  gr[a|e]y 并不符合要求 原因是出现在字符组中的元符号都只是简单的表示这个普通符号不具有特殊意义 而括号()在正常情况下是元符号    gr[ae]y和gr(a|e)y 的区别:一个字符组只能匹配目标文本中的单个字符,而多选结构|自身可能就是一个正则表达式

    5)忽略大小写

    **不区分大小写 -i **

    6)单词分界符

    **元字符序列 \< and \>**

元字符小结

元字符 名称 匹配对象
. 点号 单个任意字符
[…] 字符组 列出的任意字符
[^…] 排除型字符组 未列出的任意字符
^ 脱字符 行的起始位置
$ 美元字符 行的结束位置
\< 反斜线小于 单词的起始位置(某些版本的egrep可能不支持)
> 反斜线大于 单词的结束位置(某些版本的egrep可能不支持)
| 竖线 匹配分割两边的任意一个表达式
(…) 括号 限制竖线的作用范围

注意:

1. 字符组外 点号是元符号

字符组内 连符号是元符号

脱字符在外部表示开启位置 在内部表示排除的意思

7)可选项元素

**问号?**: 容许这个字符出现或者不出现**加号 + **: 容许之前紧邻的元素出现一次或多次**星号 * ** : 容许之前紧邻的元素出现任意多次或者不出现exp:    匹配color和colour : colou?r    匹配

符号 次数 含义
? 0/1 单次可选
+ 1~n 任意次数可选
* 0~n 至少一次

8)规定次数范围

区间两次{min,max}: 出现次数在min到max之间

9)括号及反向引用

在一个表达式中使用多个括号,其中的子表达式可以用\1,\2,\3来表示

10)转义符号

转义符号\ 匹配元字符对于的普通字符

转载地址:http://qpqli.baihongyu.com/

你可能感兴趣的文章
【java小程序实战】小程序注销功能实现
查看>>
JVM内存模型详解
查看>>
(六) Git--标签管理
查看>>
建造者模式(Builder)-设计模式(三)
查看>>
Verilog编程网站学习——门电路、组合电路、时序电路
查看>>
android——学生信息显示和添加
查看>>
Android——ImageSwitcher轮流显示动画
查看>>
Android——利用手机端的文件存储和SQLite实现一个拍照图片管理系统
查看>>
图像调优1:清晰度相关参数MTF,SFR,MTF50,MTF50P 以及TVL的概念以及换算说明
查看>>
罗永浩欲直播带货,京东说可以帮忙联系
查看>>
B站,正在变成下一个“公众号”?
查看>>
小米启动安心服务月 手机家电产品可免费清洁保养
查看>>
刘作虎:一加新品将全系支持 5G
查看>>
滴滴顺风车上线新功能,特殊时期便捷出行
查看>>
不会延期!iPhone 12S预计如期在9月发售:升级三星LTPO屏幕
查看>>
腾讯物联网操作系统TencentOS tiny线上移植大赛,王者机器人、QQ公仔、定制开发板等礼品等你来拿 !
查看>>
为云而生,腾讯云服务器操作系统TencentOS内核正式开源
查看>>
腾讯汤道生:开源已成为许多技术驱动型产业重要的创新推动力
查看>>
微信小程序多端框架 kbone 开源
查看>>
视频质量评估算法 DVQA 正式开源
查看>>