一、正则
是一种用来描述、匹配和操作字符串的工具。它由一系列字符组成的模式构成,可以用来检索、替换、提取或验证文本数据。
二、正则表达式
由普通字符和特殊字符组成,通过定义匹配规则来实现对字符串的处理
三、正则表达式的基本语法规范
-  字符匹配:-  普通字符:正则表达式中的普通字符(例如字母、数字、标点符号等)表示需要精确匹配该字符。 
-  特殊字符:正则表达式中的一些特殊字符具有特殊的含义,如元字符( ^ $ . * + ? ( ) [ ] { } | \) 和转义字符(\)。
-  字符类:使用方括号 [ ]表示一个字符类,可以指定多个可选字符,例如[abc]匹配字符a、b或c。
 
-  
-  重复匹配:-  量词:使用量词来指定匹配字符出现的次数,如 *(0 次或多次)、+(1 次或多次)、?(0 次或 1 次)等。
-  贪婪与非贪婪:正则表达式默认是贪婪模式,即尽可能多地匹配字符,可以使用 *?、+?、??等非贪婪量词使匹配变为非贪婪模式。
 
-  
-  锚点:-  ^:匹配输入字符串的开始位置。
-  $:匹配输入字符串的结束位置。
 
-  
-  分组和捕获:-  ( ):用于将多个字符组合成一个子表达式,可以对子表达式进行分组和捕获。
 
-  
-  转义字符:-  \:用于转义特殊字符,例如\.表示匹配实际的点号字符。
 
-  
-  预定义字符类:-  \d:匹配任意一个数字字符,相当于[0-9]。
-  \D:匹配任意一个非数字字符,相当于[^0-9]。
-  \w:匹配任意一个字母、数字或下划线字符,相当于[A-Za-z0-9_]。
-  \W:匹配任意一个非字母、数字或下划线字符,相当于[^A-Za-z0-9_]。
-  \s:匹配任意一个空白字符,包括空格、制表符、换行符等。
-  \S:匹配任意一个非空白字符。
 
-  
-  选择和排除:-  |:用于选择多个表达式中的一个,类似于逻辑的“或”操作。
-  [^]:在字符类中使用^表示排除某些字符,例如[^abc]匹配除了a、b和c之外的任意字符。
 
-  
-  其他元字符和特殊序列:-  .:匹配除换行符外的任意一个字符。
-  *:匹配前面的字符零次或多次。
-  +:匹配前面的字符一次或多次。
-  ?:匹配前面的字符零次或一次。
-  {n}:匹配前面的字符恰好 n 次。
-  {n,}:匹配前面的字符至少 n 次。
-  {n,m}:匹配前面的字符至少 n 次且不超过 m 次。
-  \b:匹配单词边界。
-  \B:匹配非单词边界。
 
-  
四、常用的表达式
- 匹配数字:\d
- 匹配字母:[a-zA-Z]
- 匹配邮箱地址:\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z|a-z]{2,}\b
- 匹配 URL:(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~|!:,.;]*[-A-Za-z0-9+&@#/%=~|]
- 匹配手机号码:^1[3-9]\d{9}
- 匹配日期:\d{4}-\d{2}-\d{2}
- 匹配 IP 地址:\b(?:[0-9]{1,3}.){3}[0-9]{1,3}\b
- 匹配身份证号:\d{17}[\dXx]