当前位置:网站首页>正则表达式总结
正则表达式总结
2022-07-02 05:40:00 【斑马!】
目录
1. 正则表达式简介
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
为什么要使用正则表达式?
典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。
测试字符串内的模式
替换文本
于模式匹配从字符串中提取子字符串
2. 正则表达式语法
2.1 普通字符
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
[A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母.
[...]表示匹配 [...] 中的所有字符,例如 [aeiou] 匹配字符串 "google runoob taobao" 中所有的 e o u a 字母。
匹配除了 [^...] 中字符的所有字符,例如 [^aeiou] 匹配字符串 "google runoob taobao" 中除了 e o u a 字母的所有字母.
.:匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。
[\s\S]:匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。
\w:匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
2.2 打印字符
非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列
2.3 特殊字符
所谓特殊字符,就是一些有特殊含义的字符
2.4 限定符
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。
通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪婪"表达式转换为"非贪婪"表达式或者最小匹配。
2.5 定位符
^:匹配输入字符串开始的位置;
$:匹配输入字符串结尾的位置;
\b:匹配一个单词边界,即字与空格间的位置;
\B:非单词边界匹配
2.6 选择和反向引用
用圆括号 () 将所有选择项括起来,相邻的选择项之间用 | 分隔。
对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左到右出现的顺序存储
3修饰符和元字符
3.1 修饰符
修饰符 | 含义 | 描述 |
i | ignore - 不区分大小写 | 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。 |
g | global - 全局匹配 | 查找所有的匹配项。 |
m | multi line - 多行匹配 | 使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。 |
s | 特殊字符圆点 . 中包含换行符 \n | 默认情况下的圆点 . 是匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n。 |
3.2 元字符
+:匹配前面的子表达式一次或多次;
\d:匹配一个数字字符。等价于 [0-9]。
\D:匹配一个非数字字符。等价于 [^0-9]。
等等,还有很多
3.3 优先级
正则表达式从左到右进行计算,并遵循优先级顺序
4 匹配规则
一切从最基本的开始。模式,是正则表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。
关于正则表达式在python中的使用请参考我的另外一篇博客:
参考:https://www.runoob.com/regexp/regexp-tutorial.html
边栏推荐
猜你喜欢

Straighten elements (with transition animation)

2022-2-14 learning xiangniuke project - Section 6 displays login information
![Gee series: Unit 5 remote sensing image preprocessing [GEE grid preprocessing]](/img/1e/cf0aa09c2fce2278386f12eae4a6cd.jpg)
Gee series: Unit 5 remote sensing image preprocessing [GEE grid preprocessing]

Detailed explanation of Pointer use

A collection of commonly used plug-ins for idea development tools

Innovation never stops -- the innovation process of nvisual network visualization platform for Excel import

Fabric. JS iText superscript and subscript

Win10 copy files, save files... All need administrator permission, solution

指针使用详解

centos8安装mysql8.0.22教程
随机推荐
ERP management system development and design existing source code
Youth training camp -- database operation project
How to write good code - Defensive Programming Guide
2022-2-14 learning xiangniuke project - section 23, section 5, development login and exit functions
软件测试答疑篇
How matlab marks' a 'in the figure and how matlab marks points and solid points in the figure
Using QA band and bit mask in Google Earth engine
Fabric. JS right click menu
青训营--数据库实操项目
Online English teaching app open source platform (customized)
Zzuli:1069 learn from classmate Z
MySQL foundation --- query (learn MySQL foundation in 1 day)
Gee series: unit 10 creating a graphical user interface using Google Earth engine [GUI development]
数据库批量插入数据
【技术随记-08】
Database batch insert data
Minimum value ruler method for the length of continuous subsequences whose sum is not less than s
Yyds dry inventory what is test driven development
操作符详解
Pytorch Chinese document