| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 快速学习正则表达式,不用死记硬背,示例让你通透(下篇) -> 正文阅读 |
|
[Java知识库]快速学习正则表达式,不用死记硬背,示例让你通透(下篇) |
快速学习正则表达式,不用死记硬背,示例让你通透(上篇)_涤生手记-CSDN博客? 一、正则表达式常用符号?
1.1 问号【?】
问号类似于星号,不过有点细微的不同。问号表明前面的字符可以出现
0
次或
1
次,但只限于
此。它不会匹配多次出现的字符。
示例展示:
?脚本解说:
和星号一样,可以将问号和字符组一起使用。
?脚本解说:
1.2 加号【+】
加号是类似于星号的另一个模式符号,但跟问号也有不同。加号表明前面的字符可以出现
1次或多次,但必须至少出现1
次。如果该字符没有出现,那么模式就不会匹配。
?示例解说:
?脚本解读:
1.3?花括号{}
ERE
中的花括号允许为可重复的正则表达式指定一个上限。这通常称为
间隔
(
interval
)。
可以用两种格式来指定区间。
这个特性可以精确调整字符或字符集在模式中具体出现的次数。
重点说明:
示例: ?示例解读:
同样也可以指定上限和下限 ?示例解读:
下面是字符组的示例: ?示例解读:
1.4 管道符号【|】
管道符号允许在检查数据流时,用逻辑
OR
方式指定正则表达式引擎要用的两个或多个模式。如果任何一个模式匹配了数据流文本,文本就通过测试。如果没有模式匹配,则数据流文本匹配失败。
使用格式:
示例:? 示例解读:?
管道符号两侧的正则表达式可以采用任何正则表达式模式(包括字符组)来定义文本。看下面示例:
?示例解读:
1.5 小括号()
正则表达式模式也可以用圆括号进行分组。当将正则表达式模式分组时,该组会被视为一个标准字符。可以像对普通字符一样给该组使用特殊字符。
示例: ?示例解读:
将分组和管道符号一起使用来创建可能的模式匹配组是很常见的做法。如下示例:
?示例解读:
二、正则表达式实战示例示例1:?下面会有一个脚本,功能是对PATH环境变量中定义的目录里的可执行文件进行计数。 脚本内容如下:
执行结果: ?示例2:?正则表达式解析邮件地址 邮件地址的基本格式为:username@hostname? 过滤用户名中表达式模式。
这个分组指定了用户名中允许的字符,加号表明必须有至少一个字符。下一个字符很明显是@。 hostname模式使用同样的方法来匹配服务器名和子域名:
顶级域名用的正则表达式模式:
整体组合模式:
封装到脚本中: cat??isemail.sh
?注意:在awk程序中使用正则表达式间隔时,必须使用--re-interval命令行选项。 示例测试脚本: 示例解读:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 21:56:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |