【正则表达式】正则表达式基础概念记录

正则表达式

1.什么是正则表达式?

1.1背景介绍

人类神经系统早期研究称之为:正则集的代数的表达式,有多种定义:

  • 用某种模式去匹配一类字符串的公式,主要用来描述字符串匹配的工具;
  • 由普通字符和特殊字符(元字符)组成的文字模式;
  • 用于描述某些规则的工具,即记录文本规则的代码;
  • 用一个字符串描述一个特征,然后去验证另外一个字符串是否符合这个特征;
1.2匹配类型
  • 形容词性匹配:一个字符串匹配一个正则表达式;
  • 动词性匹配: 在文本或字符串里匹配正则表达式;
  • 名词性匹配: 在字符串中满足给定的正则表达式的一部分;
1.3常见应用
  • 验证字符串;
  • 查找字符串;
  • 替换字符串;
  • 提取字符串;

2.元字符

2.1匹配位置的元字符

^ : 脱字符号,匹配行的开始;
$ : 美元符号,匹配航的结尾;
\b: 匹配单词的开始或结尾;

例子:
^string => 匹配"string"开始的行;
string$ => 匹配"string"结尾的行;
^$ => 匹配空行;
^ => 匹配任意行;
\bstr => 匹配以"str"开头的字符串,如"String"、“String Format”;
\bstring\b => 匹配完整单词"String";

2.2匹配字符的元字符

.(圆点) => 匹配任意字符(除了换行符);
\w => 匹配单词字符(数字、字母、下划线、汉字);
\W => 匹配任意非单词字符(换行符也会匹配);
\s => 匹配任意空白字符(空格、制表符、换行符、中文全角空格等);
\S => 匹配任意非空白字符
\d => 匹配任意的数字;
\D => 匹配任意的非数字字符;

例子:

  • ^.$ => 除换行符外可含任意字符的行;
  • \ba\w\w\w\b => 以"a"开头且长度为4的任意单词;
  • \ba\w\w\d\d\D\b => 匹配"a"+2单词字符+2数字+1非数字,如:“a1b23_”;
  • 2020.11.27 => 匹配除换行符之外以任意字符分割字符串"2020",“11”,"27"的字符串,如:2020.11.27、2020=11-27、2020 11 27、2020-11/27;

3.字符类匹配

3.1字符类

注:此处元字符失去意义,只表示字符本意;

  • [0123456789] => 匹配任意数字;
  • <H[123456]> => 匹配<H1><H2><H3><H4><H5><H6>;
  • [Jj]ack => 匹配jack或者Jack;
  • [^aeiouAEIOU] => ^开头指否定,匹配非元音字符;
  • [0-9][a-z][A-Z] => -(连杠)不在开头则指定左右边界之间的任意字符;
  • [0-9a-zA-Z_] => 等同于\w;
  • [^0-9a-zA-Z_] => 等同于\W;

转义:\
反义:^

3.2限定符

元字符一次只能匹配一个位置或者一个字符,用限定符来确定指定数量,放在后面;
常用限定符:

  • {n} => 重复n次;
  • {n,} => 至少重复n次;
  • {n,m} => 重复至少n次,至多m次;
  • * => 重复至少0次;
  • + => 重复至少1次;
  • ? => 重复0次或1次;
3.3字符的运算

替换:
| => 匹配 | 左侧或右侧,优先匹配左侧表达式;
\d{5} | \d{5}-\d{3}
源数据:12345 12345-678
匹配值:12345 12345(这一部分符合左边正则表达式,就不再看右边)
分组:
()小括号把正则表达式框起来可看做一个整体
(\d{1,3}\.){3}\d{1,3} => 可用于匹配简单的ip地址
反向引用:
直接用组号引用正则表达式
\b(\w)(\d)\1\2\b = \b\w\d\w\d\b

3.4优先级顺序

转义符>圆括号&方括号>限定符>位置和顺序>或运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳木头

谢谢小兄弟^0^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值