当前位置: 首页 > news >正文

正则表达式(3)常见的正则表达式及语法明细

数字校验

数字校验的正则表达式用于验证字符串是否符合数字格式的要求,例如整数、小数、正负数等。

  • 整数

    • 非负整数:^\d+$

    • 负整数:^-\d+$

    • 任意整数(包括0):^-?\d+$

  • 小数

    • 非负小数:^\d+(\.\d+)?$

    • 负小数:^-\d+(\.\d+)?$

    • 任意小数:^-?\d+(\.\d+)?$

  • 正负数

    • 非负数:^\d+(\.\d+)?$

    • 负数:^-\d+(\.\d+)?$

    • 任意正负数:^-?\d+(\.\d+)?$

字符校验

字符校验的正则表达式用于验证字符串是否符合字符格式的要求,例如字母、字母数字等。

  • 字母

    • 任意字母:^[a-zA-Z]+$

    • 大写字母:^[a-zA-Z]+$

    • 小写字母:^[a-z]+$

  • 字母数字

    • 任意字母数字:^[a-zA-Z0-9]+$

    • 以字母开头的字母数字:^[a-zA-Z][a-zA-Z0-9]*$

特殊需求校验

特殊需求校验的正则表达式用于验证字符串是否符合特定格式的要求,例如日期、时间、电话号码、电子邮件地址等。

  • 日期(YYYY-MM-DD)

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

    • 进一步验证月份和日期的有效性:^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])-(19|20)\d{2}$

  • 时间(HH:MM:SS)

    • ^([01]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9])$

    • 进一步验证时间的有效性:^(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$

  • 电话号码

    • 国际格式:^\+?[1-9]\d{1,14}$

    • 美国格式:^\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4}$

  • 电子邮件地址

    • 简单验证:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

    • 进一步验证:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$

正则表达式的语法明细

类别符号/模式描述示例匹配
字符匹配普通字符直接匹配字符本身a 匹配 "a",5 匹配 "5"
特殊字符在正则表达式中具有特殊含义的字符,需用 \ 转义. 匹配除换行外的任意字符
元字符.匹配除换行符以外的任意单个字符a.c 匹配 "abc"、"axc"
^匹配输入字符串的开始位置^hello 匹配 "hello"
$匹配输入字符串的结束位置world$ 匹配 "helloworld"
*匹配前面的字符零次或多次a*b 匹配 "b"、"ab"、"aaab"
+匹配前面的字符一次或多次a+b 匹配 "ab"、"aaab"
?匹配前面的字符零次或一次a?b 匹配 "b"、"ab"
``逻辑或操作符,匹配两个表达式中的任意一个`redblue` 匹配 "red" 或 "blue"
\b匹配一个单词边界\bhello\b 匹配 "hello"
\B匹配非单词边界\Bhello\B 匹配 "hello there"
\d匹配任意数字,等同于 [0-9]\d 匹配 "0" 到 "9"
\D匹配任意非数字字符,等同于 [^0-9]\D 匹配除 "0" 到 "9" 外的字符
\s匹配任意空白字符\s 匹配空格、制表符等
\S匹配任意非空白字符\S 匹配除空格、制表符外的字符
\w匹配任意字母数字字符,包括下划线,等同于 [a-zA-Z0-9_]\w 匹配 "a" 到 "z"、"0" 到 "9"、"_"
\W匹配任意非字母数字字符,等同于 [^a-zA-Z0-9_]\W 匹配除 "a" 到 "z"、"0" 到 "9"、"_" 外的字符
特殊序列\t匹配制表符\t 匹配制表符
\n匹配换行符\n 匹配换行符
\r匹配回车符\r 匹配回车符
\f匹配换页符\f 匹配换页符
\n匹配数字,n 是一个正整数\n 匹配数字 "n"
\xhh匹配十六进制值 hh 表示的字符\x41 匹配 "A"
\uhhhh匹配 Unicode 值 hhhh 表示的字符\u0041 匹配 "A"
字符类[abc]匹配 "a"、"b" 或 "c" 中的任意一个字符[abc] 匹配 "a"、"b"、"c"
[^abc]匹配除了 "a"、"b"、"c" 之外的任意字符[^abc] 匹配除 "a"、"b"、"c" 外的字符
[a-z]匹配任意小写字母[a-z] 匹配 "a" 到 "z"
[A-Z]匹配任意大写字母[A-Z] 匹配 "A" 到 "Z"
[0-9]匹配任意数字[0-9] 匹配 "0" 到 "9"
数量词n*匹配前面的字符零次或多次a*b 匹配 "b"、"ab"、"aaab"
n+匹配前面的字符一次或多次a+b 匹配 "ab"、"aaab"
n?匹配前面的字符零次或一次a?b 匹配 "b"、"ab"
n{m}匹配前面的字符恰好 m 次a{3}b 匹配 "aaab"
n{m,}匹配前面的字符至少 m 次a{3,}b 匹配 "aaab"、"aaaab"
n{m,n}匹配前面的字符至少 m 次,最多 n 次a{3,5}b 匹配 "aaab"、"aaaab"、"aaaaaab"
分组(...)捕获组,匹配括号内的内容,并可以被后续引用(abc) 匹配 "abc"
(?:...)非捕获组,匹配括号内的内容,但不捕获匹配的内容(?:abc) 匹配 "abc"
``选择组,匹配两个表达式中的任意一个`(redblue)` 匹配 "red" 或 "blue"
\1\2...反向引用,引用之前捕获组匹配的内容(abc)\1 匹配 "abcabc"
断言^正向肯定断言,匹配字符串的开始^hello 匹配 "hello"
$正向肯定断言,匹配字符串的结束world$ 匹配 "helloworld"
(?=...)正向肯定查找,匹配后面跟着特定模式的字符串hello(?=world) 匹配 "helloworld"
(?!...)正向否定查找,匹配后面不是特定模式的字符串hello(?!world) 匹配 "hello there"
(?<=...)反向肯定查找,匹配前面是特定模式的字符串(?<=hello)world 匹配 "helloworld"
(?<!...)反向否定查找,匹配前面不是特定模式的字符串(?<!hello)world 匹配 "world"

相关文章:

  • 物联网-IoTivity:开源的物联网框架
  • 【从0到1搞懂大模型】神经网络的实现:数据策略、模型调优与评估体系(3)
  • MySQL 表的字段数量和单行存储容量受存储引擎、数据类型、行结构等多因素限制
  • Vue使用jsts,将wkt转为geojson
  • 爬虫案例十一js逆向数位观察网
  • Pytorch 第九回:卷积神经网络——ResNet模型
  • 【leetcode100】组合总和Ⅱ
  • 清华大学08-使用DeepSeek赋能家庭教育【文末附下载地址】
  • Python绘制数据分析中经典的图形--列线图
  • 【接口负载】✈️整合 Resilience4j 指定接口负载,避免过载
  • 蓝牙4.0BLE协议栈中串口应用详解
  • [HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(1)知识基础
  • Ollama在AutoDL部署,CPU服务器做代理,实践中
  • 基于SpringBoot的智能问诊系统设计与隐私保护策略
  • ChatGPT使用经验分享
  • Android MVC、MVP、MVVM三种架构的介绍和使用。
  • 蓝桥杯 C++ b组 积木画深度解析
  • 【算法day4】最长回文子串——动态规划方法
  • JAVA通过SSE实现消息推送
  • 【Elasticsearch入门到落地】9、hotel数据结构分析
  • “9+2”复式票,浦东购彩者拿下体彩大乐透1153万头奖
  • 李峰已任上海青浦区委常委
  • 中央军委决定调整组建3所军队院校
  • 上海锦江乐园摩天轮正在拆除中,预计5月底6月初拆完
  • 秘鲁总统任命前司法部长阿拉纳为新总理
  • 小耳朵等来了春天:公益义诊筛查专家走进安徽安庆