正则表达式

正则表达式含义:

正则表达式是由一些具有特殊含义的字符组成的字符串,多用于查找、替换符合规则的通俗来讲就是按照某种规则来匹配符合条件的字符串。

一、元字符

元字符:即为有特定含义的字符,常见的元字符如下:

|-----|----------------------------------|
| 代码 | 说明 |
| . | 匹配除换行符以外的任意字符,只有一个字符例外 (\ n) |
| \s | 匹配任意的空白符(包含Tab和换行符)包括空格、制表符、换页符等 |
| \d | 匹配任意字符 |
| \w | 匹配字母或数字或下划线或汉字 |
| \b | 匹配单词的开始或结束 |
| ^ | 匹配字符串的开始 |
| $ | 匹配字符串的结束 |

二、反义字符

反义字符:多用于查找除某个字符以外其他任意字符均可以的情况,常用的反义字符如下:

|-------------|-----------------------|
| 代码 | 说明 |
| \W | 匹配任意不是字母,数字,下划线,汉字的字符 |
| \S | 匹配任意不是空白符的字符 |
| \D | 匹配任意不是空白符的字符 |
| \B | 匹配不是单词开头或结束的位置 |
| \^x | 匹配除x以外的任意字符 |
| \^aeiou | 匹配除了aeiou这几个字母以外的任意字符 |

三、特殊字符

若要匹配特殊字符,必须首先使用字符"转义",即将反斜杠字符(\)放在它们前面

|----|----------------------------------------------|
| 代码 | 说明 |
| | 匹配输入字符串的结尾位置,要匹配字符串本身,请使用 \ | | () | 标记一个子表达式的开始和结束位置,要匹配字符串本身,请使用 \\ | | \* | 匹配前面子表达式零次或多次,要匹配 \*字符,请使用 \\ \* | | + | 匹配前面子表达式零次或多次,要匹配 +字符,请使用 \\ + | | . | 匹配除换行符\\n以外的任意字符,要匹配 . 字符,请使用 \\ . | | \[ | 标记一个中括号表达式的开始,要匹配 \[ 字符,请使用 \\ \[ | | ? | 匹配前面子表达式零次或多次,或指明一个非贪婪限定字符,要匹配 ? 字符,请使用 \\ ? | | \\ | 将下一个字符标记为特殊字符、或愿意字符、或向后引用 | | \^ | 匹配输入字符串的开始位置,要匹配 ,请使用 \ $ |
| { | 标记限定符表达式的开始,要匹配{,请使用 \ { |
| | | 指明两项之间的一个选择,要匹配| ,请使用 \ | |

四、限定符

限定符:用来指正则表达式的一个给定组件必须要出现多次才能满足匹配,常用的限定符如下:

|-------|---------------------------------------------------------------------------------------------------|
| 代码 | 说明 |
| * | 匹配前面表达式零次或多次.例如,zo* 能匹配 "z" 以及 "zoo" |
| + | 匹配前面表达式一次或更多次.例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z" |
| ? | 匹配前面表达式零次或一次,例如'di?' 能匹配'di'以及'did |
| {n} | 至少匹配n次. 'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o |
| {n, } | 重复n次或更多次. 例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 |
| [ | 标记一个中括号表达式的开始,要匹配 [ ,请使用 \ [ |
| {n,m} | m和n均为非负整数,其中n<m,最少匹配n次最多匹配m次 |

五、正则表达式常用匹配规则

1. 校验字符的表达式

(1)匹配所有的小写字母:^a-z$

(2)匹配所有的大写字母:^A-Z$

(3)匹配所有的大小写字母:^a-zA-Z$

(4)匹配除了小写字母以外的所有的字母:^\^a-z$

(5)匹配除(\) (/) (^) 之外的所有字符:^\^\\\\\\/ \\\^$

(6)匹配除双引号(")和单引号(') 之外的所有字符:^\^\\"\\'$

2. 校验数字的表达式

(1)匹配所有的数字:^0-9*$

(2)匹配所有的数字、句号和减号:^0-9\\. \\-*$

(3)匹配n位数字:^\d{n}$

(4)匹配至少n位数字:^\d{n, }$

(5)匹配n-m位数字:^\d{n,m}$

(5)只能输入长度为3的字符:"^.{3}$"

(6)匹配零和非零开头的数字:^(0|1-90-9*)$

(7)匹配所有正数:^0-9{1, } 或者 \^\[0-9\]+

(8)匹配所有整数:^\{0,1} 0-9 {1, } 或者 \^\\-?\[0-9\]+

(9)匹配所有非负整数:^\d+ 或者 \^\[1-9\]\\d\*\|0

(10)匹配所有浮点数:^- 0-9+\ .?0-9+ 或者 \^\\-?\[0-9\]\*\\ .?\[0-9\]\*

(11)只能输入由数字和26个英文字母组成的字符串:"^A-Za-z0-9+$"

(12)匹配所有包含一个以上的字母、数字下划线的字符串:^a-zA-Z0-9_ {1, }$ 或者

^\-?0-9 *\ .?0-9*$

  1. 确定重复出现

(1)所有的字母和下划线:^a-zA-Z_$

(2)字母a:^a$

(3)aaaa:^a{4}$

(4)aa, aaa或aaaa:^a{2,4}$

(5)a, aa或aaa:^a{1,3}$

(6)包含多余两个a的字符串:^a{2,}$

(7)所有的两个字符:.{2]

链接:正则表达式在线测试

相关推荐
小白快快跑哦9 小时前
python-字符串全解(六):正则表达式-量词
python·正则表达式·字符串
小雪崩11 小时前
嵌入式学习 day60:ARM汇编——触摸屏与SPI
汇编·arm开发·学习
额额额对了12 小时前
SPI通信
linux·c语言·汇编·单片机·嵌入式硬件·arm
AOI小白新手上路19 小时前
4-3_ARM汇编_学习笔记
汇编·arm开发·学习
福兮说19 小时前
JS 正则的六个坑:带 g 的 test() 一真一假、空匹配死循环、replace 里的 $
开发语言·前端·javascript·正则表达式
Rebecca_aLi1 天前
码匠教育:零基础学 Python,标识符到循环全套基础语法解析
开发语言·python·正则表达式
IvanCodes1 天前
Python 正则表达式(十四):文本匹配、查找与替换
开发语言·python·正则表达式
AC赳赳老秦2 天前
公开音频转写信息提取:OpenClaw 处理发布会与听证会文本并提取核心决策信息
大数据·开发语言·汇编·数据库·人工智能·deepseek·openclaw
FED_AF2 天前
Linux运维“邪修”功法之正则表达式
linux·运维·正则表达式
AC赳赳老秦2 天前
财报附注表格精准提取:OpenClaw 从 PDF 年报附注挖掘隐藏明细,补齐财务分析维度
java·汇编·c++·python·青少年编程·deepseek·openclaw