欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 对正则表达式说不!!!

对正则表达式说不!!!

2025/2/22 2:09:32 来源:https://blog.csdn.net/2402_84756417/article/details/145616184  浏览:    关键词:对正则表达式说不!!!

可能大家都会和我一样,时常会遇到正则表达式,有时候会忘记某些字符而苦恼。今天就帮助大家克服它,虽然不多,但我认为掌握这些足够了,万变不离其宗,以不变应万变。

一、正则表达式内容分类

1. 字符类
[abc]:匹配方括号内的任意一个字符,如a、b或c。
[^abc]:匹配方括号内不在的任意一个字符,即匹配除a、b、c之外的任何字符。
[a-z]:匹配任意一个小写字母(范围从a到z)。
[A-Z]:匹配任意一个大写字母(范围从A到Z)。
[0-9]:匹配任意一个数字(范围从0到9)。
[a-zA-Z0-9]:匹配任意一个字母或数字。


2. 预定义字符类
.:匹配任意单个字符(除换行符\n外)。
\d:匹配任意一个数字(等同于[0-9])。
\D:匹配任意一个非数字(等同于[^0-9])。
\w:匹配任意一个字母、数字或下划线(等同于[a-zA-Z0-9_])。
\W:匹配任意一个非字母、非数字、非下划线的字符(等同于[^a-zA-Z0-9_])。
\s:匹配任意一个空白字符(如空格、制表符\t、换行符\n等)。
\S:匹配任意一个非空白字符。


3. 边界匹配
^:匹配字符串的开头。
$:匹配字符串的结尾。
\b:匹配单词边界,即单词与非单词字符之间的位置。
\B:匹配非单词边界。


4. 量词
*:匹配前面的字符或子模式0次或多次。
+:匹配前面的字符或子模式1次或多次。
?:匹配前面的字符或子模式0次或1次。
{n}:匹配前面的字符或子模式恰好n次。
{n,}:匹配前面的字符或子模式至少n次。
{n,m}:匹配前面的字符或子模式至少n次,但不超过m次。


5. 分组与引用
():将多个字符或模式组合成一个子模式,便于量词修饰或捕获分组。
\1、\2等:表示对捕获分组的引用,\1表示引用第一个捕获分组的内容。


6. 选择
|:表示“或”的关系,用于匹配多个模式中的任意一个。例如,cat|dog可以匹配“cat”或“dog”。


7. 转义字符
\:用于转义正则表达式中的特殊字符,使其失去特殊含义。例如,\.表示匹配一个点号.,而不是任意字符。


8. 断言
(?=...):正向肯定预查,匹配后面跟有指定模式的字符串。
(?!...):正向否定预查,匹配后面不跟有指定模式的字符串。
(?<=...):反向肯定预查,匹配前面有指定模式的字符串。
(?<!...):反向否定预查,匹配前面没有指定模式的字符串。


9. 非捕获分组
(?:...):非捕获分组,用于分组但不捕获内容,不会创建捕获组。


10. 模式修饰符
i:不区分大小写。
m:多行模式,^和$会匹配每一行的开头和结尾。
s:单行模式,.会匹配任意字符,包括换行符。
g:全局匹配,匹配字符串中的所有可能位置。


11. 常见应用场景
手机号码:^1[3456789]\d{9}$
邮箱地址:^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
IP地址:^(?:\d{1,3}\.){3}\d{1,3}$
日期:^\d{4}-\d{2}-\d{2}$(如2023-01-01)

 二、关于手机号码、邮箱地址、日期的解释(实例)

 ^1[3456789][0-9]{9}$

解释:

  • ^:表示匹配字符串的开始位置。
  • 1:表示字符串必须以数字1开头。
  • [3456789]:表示第二位数字必须是3、4、5、6、7、8或9中的任意一个。
  • [0-9]{9}:表示接下来的9个字符必须是0到9之间的任意数字。
  • $:表示匹配字符串的结束位置。

 作用:
这个正则表达式通常用于匹配符合中国大陆手机号码格式的字符串。中国大陆的手机号码格式通常是11位数字,以1开头,第二位是3到9中的一个数字,后面跟着9位任意数字。

解释:

 ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$

  •  ^
    匹配字符串的开头,确保整个字符串从这里开始。
  • [a-zA-Z0-9_.+-]+
    匹配电子邮件地址的用户名部分。
  • [a-zA-Z0-9_.+-]:表示可以匹配任意一个字母(大写或小写)、数字、下划线_、点号.、加号+或减号-。
  • +:表示前面的字符集可以出现一次或多次。例如,example.email+alias是有效的用户名部分。
  • @
    匹配一个@符号,这是电子邮件地址中分隔用户名和域名的必要部分。
  • [a-zA-Z0-9-]+
    匹配电子邮件地址的域名部分(不包括顶级域名)。
  • [a-zA-Z0-9-]:表示可以匹配任意一个字母(大写或小写)、数字或减号-。
  • +:表示前面的字符集可以出现一次或多次。例如,example-domain是有效的域名部分。
  • \.
    匹配一个点号.,用于分隔域名和顶级域名。
  • [a-zA-Z0-9-.]+
    匹配电子邮件地址的顶级域名部分。
  • [a-zA-Z0-9-.]:表示可以匹配任意一个字母(大写或小写)、数字、点号.或减号-。
  • +:表示前面的字符集可以出现一次或多次。例如,com、co.uk或example.com是有效的顶级域名部分。
  • $
    匹配字符串的结尾,确保整个字符串在这里结束。

 

^\d{4}-\d{2}-\d{2}$

解释:

  • ^
    匹配字符串的开头,确保整个字符串从这里开始。
  • \d{4}
    匹配四位数字,表示年份。例如,2023、1999等。
  • -
    匹配一个连字符-,用于分隔年份、月份和日期。
  • \d{2}
    匹配两位数字,表示月份。例如,01(一月)、12(十二月)。
  • -
    再次匹配一个连字符-。
  • \d{2}
    匹配两位数字,表示日期。例如,01(1号)、31(31号)。
  • $
    匹配字符串的结尾,确保整个字符串在这里结束。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词