正则表达式学习总结

简介: 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

概述

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。主要是用来做文本的复杂处理。

基础

1、标准字符集合

标 签 作用
d 任意一个数字,0-9中任意一个
D 除了数字,大写标识相反的意思
w 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”
s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ fnrtv]
. 可以匹配任意字符

2、自定义字符集合

[] 方括号匹配方式,能够匹配方括号内的任意字符

符号 作用
[12A] 匹配“1”,“2”,“A”
1 匹配“a”,“b”,“c”之外的字符
[f-k] 匹配f到k之间的任意一个字符
2 匹配除A到F,0到3之外的字符或数字

3、修饰匹配次数的特殊符号

符号 作用
{n} 表达式重复n次
{m,n} 表达式至少重复m次,至多重复n次
{m,} 表达式至少重复m次
匹配表达式0次或者1次,相当于{0,1}
  • | 表达式至少出现一次,相当于{1,}
  • | 表达式至少出现零次,相当于{0,}

4、贪婪模式和非贪婪模式

贪婪模式:匹配的符合表达式的字符越多越好;
_
非贪婪模式:匹配字符越少越好,匹配的字符后加“?”修饰。
_

5、模式匹配

  • 忽略大小写
    _
  • 单行模式
    整个文本看作一个字符串
  • 多行模式
    文本按照行区分

6、字符边界

标题1 标题2
^ 表示字符串开始的地方
$ 表示字符串结束的地方
b 匹配一个单词的边界(单词边界两边没有其它字符)

_

高级

1、选择符和分组

符号 作用
\ 或的关系(竖线)
() 通过括号组织一组表达式

反向引用

nnn 每一对()会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号,通过反向引用,可以对分组已捕获的字符串进行引用。
_
_

2、预搜索(零宽断言)

这个位置应该符合某个条件,判断当前位置的前后字符是否符合指定的条件,但不匹配前后的字符,是对位置的匹配。

标题1 标题2
(?=exp) 后面匹配表达式
(?<=exp) 前面匹配表达式
(?!exp) 断言此位置的后面不能匹配表达式exp
(? 前面不能匹配表达式

_

_

更多参考链接

正则表达式30分钟入门教程

正则表达式在线测试


  1. abc
  2. A-F0-3
相关文章
从零开始学习 Java:简单易懂的入门指南之正则表达式(十五)
从零开始学习 Java:简单易懂的入门指南之正则表达式(十五)
|
1月前
|
测试技术 Perl
一个提高效率的工具,正则表达式,值得学习一下!
一个提高效率的工具,正则表达式,值得学习一下!
|
1月前
|
JavaScript 前端开发 Scala
Python学习十:正则表达式
这篇文章是关于Python中正则表达式的使用,包括re模块的函数、特殊字符、匹配模式以及贪婪与非贪婪模式的详细介绍。
16 0
|
6月前
|
Web App开发 JavaScript
学习VUE之正则表达式全集整理
学习VUE之正则表达式全集整理
68 0
|
4月前
|
存储 JavaScript 前端开发
|
Shell Linux Perl
Shell基础学习---3、Read读取控制台输入、函数、正则表达式入门
Shell基础学习---3、Read读取控制台输入、函数、正则表达式入门
学习正则表达式
学习正则表达式
46 0
|
6月前
|
机器学习/深度学习 Java 索引
39、一篇文章弄懂 Java 正则表达式中的量词、贪婪、勉强、独占和 String 的 matches 方法的底层【个人感觉非常值得学习】
39、一篇文章弄懂 Java 正则表达式中的量词、贪婪、勉强、独占和 String 的 matches 方法的底层【个人感觉非常值得学习】
66 0
|
6月前
|
Shell Linux Perl
Shell基础学习---3、Read读取控制台输入、函数、综合应用案例:归档文件、正则表达式入门(第二天学习)
Shell基础学习---3、Read读取控制台输入、函数、综合应用案例:归档文件、正则表达式入门
123 1
|
6月前
|
关系型数据库 MySQL 数据库
MySQL通配符和正则表达式(数据库学习—— 二)
MySQL通配符和正则表达式(数据库学习—— 二)
41 1