正则表达式详解:零宽度负回顾后发断言(?<!exp)
需积分: 20 52 浏览量
更新于2024-08-16
收藏 1.11MB PPT 举报
"零宽度负回顾后发断言——(?<!exp)-正则表达式"
在正则表达式中,零宽度负回顾后发断言`(?<!exp)`是一种高级匹配技术,它用来确保某个位置的前面不匹配指定的模式`exp`。这与正向前瞻断言`(?!exp)`相反,正向前瞻断言检查后面是否能匹配`exp`,而零宽度负回顾后发断言则检查前面是否能匹配。
例如,如果我们有一个正则表达式`(?<![a-z])\d{7}`,它的含义是匹配任何不是由小写字母前导的七位数字。`(?<![a-z])`这个部分确保了在匹配的数字之前没有小写字母。如果匹配到的数字前面有任何一个小写字母,那么整个匹配就会失败。
正则表达式,通常简称为regex,是一种强大的文本处理工具,用于在字符串中搜索、查找、替换和验证模式。它由一系列特殊字符(元字符)组成,这些字符可以代表广泛的字符类别和重复模式。以下是一些常见的元字符及其用途:
1. `. (点号)`:匹配除了换行符`\n`之外的任何字符。
2. `[字符集]`:匹配字符集中任何一个字符,如`[aeiou]`匹配任何小写元音字母。
3. `[^字符集]`:匹配不在字符集内的任何字符,如`[^aeiou]`匹配任何非小写元音字母。
4. `\d`:匹配任何十进制数字,等同于`[0-9]`。
5. `\b`:表示单词边界,用于匹配单词的开始或结束。
6. `\w`:匹配任何单词字符,包括字母、数字和下划线,等同于`[a-zA-Z_0-9]`。
7. `\s`:匹配任何空白字符,包括空格、制表符、换页符等。
8. `^`:匹配字符串的开始。
9. `$`:匹配字符串的结束。
10. `*`:匹配前面的元素零次或多次,等同于`{0,}`。
11. `+`:匹配前面的元素一次或多次,等同于`{1,}`。
12. `?`:匹配前面的元素零次或一次,等同于`{0,1}`。
13. `{n}`:匹配前面的元素恰好n次。
14. `{n,}`:匹配前面的元素至少n次。
15. `{n,m}`:匹配前面的元素至少n次,但不超过m次。
16. `\`:用于转义元字符,例如`\.`匹配点号,`\*`匹配星号。
此外,正则表达式还可以使用分支条件,用竖线`|`分隔不同的规则,例如`电话号码`的正则表达式`(\d{3}-\d{8})|(\d{4}-\d{7})`可以匹配两种格式的电话号码:三位区号加八位本地号码或四位区号加七位本地号码。
掌握正则表达式可以极大地提升处理文本的能力,无论是在编程语言中进行字符串操作,还是在文本编辑器或搜索引擎中查找特定模式,都离不开正则表达式的强大功能。对于`(?<!exp)`这样的高级特性,理解并熟练运用可以让你的正则表达式更加精确和高效。
2008-09-27 上传
2020-10-13 上传
2010-12-21 上传
点击了解资源详情
2023-08-29 上传
2023-07-08 上传
2024-04-10 上传
2011-03-10 上传
2021-05-05 上传
Happy破鞋
- 粉丝: 13
- 资源: 2万+
最新资源
- 虚拟人中台相关方案文档
- unity 3D文字系统源码VText.zip
- madgrad:MADGRAD的JAX实现
- SimpleHUD:SimpleHUD是一款易于使用但美观的Android HUD(或对话框)
- 汇编语言程序设计(资料+视频教程).rar
- 信呼协同办公OA系统 v2.1.8
- meelouth.github.io:网站
- bank-java:一个用 Java 编写的带有 GUI 的基本银行程序
- 亚马逊交易-crx插件
- stylex
- Data-Analysis-Project-in-Python:Python中Fifa 18数据集的数据分析。 该项目包括可视化和用于预测目的的机器学习
- glslmath:C ++仅限头文件的库,可模拟GLSL数学-开源
- TongYWPF.Template.NumberOne202303DemoK
- 剁手党买家秀助手-crx插件
- ExpandTabView-master
- React