正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
概念:
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
一. 基础
1. 基础语法:"^([]{})([]{})([]{})$"
- 正则字符串 = “开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束”
2. 常用运算符与表达式:
- ^ :开始
- () :域段
- [] : 包含,默认是一个字符长度
- [^] : 不包含,默认是一个字符长度
- {n,m} : 匹配长度
- . : 任何单个字符(. 字符点)
- | : 或
- \ : 转义
- $ : 结尾
- [A-Z] : 26个大写字母
- [a-z] : 26个小写字母
- [0-9] : 0至9数字
- [A-Za-z0-9] : 26个大写字母、26个小写字母和0至9数字
- ,: 分割
3. 等价:等价是等同于的意思,表示同样的功能。
- ?,*,+,\d,\w 都是等价字符
- ? : 等价于匹配长度{0,1}
- *: 等价于匹配长度{0,}
- +: 等价于匹配长度{1,}
- \d : 等价于[0-9]
- \D : 等价于[^0-9]
- \w : 等价于[A-Za-z_0-9]
- \W : 等价于[^A-Za-z_0-9]。
二. eg
- ^(\w)$ : 等同于^([A-Za-z_0-9])$; 一个字母、数字或下划线。
- ^(\w{6,12})$ : 字母、数字或下划线组成的6-12位字符串;eg:abcdefgHIJ,12345678,______,adcd_123。
- ^([a-zA-B])(\w{6,11})$ :字母开头,字母、数字或下划线组成的6-12位字符串,eg: A_1234567890,abc123_9527b。
- ^([ ^a-zA-B])(\w{6,11})$ : 不能字母开头,字母、数字或下划线组成的6-12位字符串,eg: _1234567890,2c123_9527b。
- ^(?=[a-zA-B])(\w{6,12})$ :字母开头,字母、数字或下划线组成的6-12位字符串,eg: A_1234567890,abc123_9527b。
- ^(?=[a-zA-B])(\w{6,12})$ :不能字母开头,字母、数字或下划线组成的6-12位字符串,eg: 2_1234567890,2bc123_9527b。
- demo([E,F])(\w{6,11})$ :等同于demo(E|F)(\w{6,11})$。 demo + E 或 F,再加 6到11位字母、数字或下划线组成字符串,eg: demoE12345678。
三. 符号