正则表达式

正则表达式

正则表达式是一种强大的文本处理工具,它使用一种特定格式的字符串来描述、匹配一系列符合某个句法规则的字符串。正则表达式通常被用于字符串模式匹配(查找、替换)以及基于模式匹配的输入验证等。

正则表达式由一些普通字符和一些元字符组成。元字符在正则表达式中具有特殊的含义,它们不表示其字面意义,而是用于描述字符的模式。

以下是一些常用的正则表达式元字符和它们的意义:

  • .:匹配任意单个字符(除了换行符)。
  • *:匹配前面的子表达式零次或多次。
  • +:匹配前面的子表达式一次或多次。
  • ?:匹配前面的子表达式零次或一次。
  • {n}:n 是一个非负整数。匹配确定的 n 次。
  • {n,}:n 是一个非负整数。至少匹配 n 次。
  • {n,m}:m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。
  • ^:匹配输入字符串的开始位置。
  • $:匹配输入字符串的结束位置。
  • \:转义字符,用于匹配一些特殊字符(如 .*? 等)。
  • []:字符集合。匹配集合中的任意单个字符。
  • |:或者。匹配 | 符号前后的任一表达式。
  • ():捕获括号。用于标记一个子表达式的开始和结束位置。

比如

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

这个正则表达式用于匹配电子邮件地址的基本格式。^: 表示字符串的开始,[a-zA-Z0-9._%+-]: 这是一个字符集,它匹配任何小写字母(a-z)、大写字母(A-Z)、数字(0-9)以及特定的字符(._%+-),+: 表示前面的字符集可以出现一次或多次,@:直接匹配电子邮件地址中的@符号,[a-zA-Z0-9.-]:这是一个字符集,它匹配任何小写字母、大写字母、数字、.-+: 表示前面的字符集可以出现一次或多次。这部分用于匹配域名中的标签,例如examplecom\.用于匹配点字符.,因为.在正则表达式中有特殊意义(代表任意字符),所以要使用反斜杠\进行转义。[a-zA-Z]: 匹配任何小写或大写字母。{2,}: 表示前面的字符集至少出现两次。这部分用于匹配顶级域名(如.com.org等)的至少两个字母。

以下是对该正则表达式的代码测试:

相关推荐
weixin_514221851 小时前
FDTD与matlab、python耦合
python·学习·matlab·fdtd
递归不收敛2 小时前
吴恩达机器学习课程(PyTorch 适配)学习笔记大纲
pytorch·学习·机器学习
不太可爱的叶某人2 小时前
【学习笔记】kafka权威指南——第10章 监控kafka (7-10章只做了解)
笔记·学习·kafka
递归不收敛5 小时前
吴恩达机器学习课程(PyTorch适配)学习笔记:2.4 激活函数与多类别处理
pytorch·学习·机器学习
加油20195 小时前
如何快速学习一个网络协议?
网络·网络协议·学习·方法论
A9better6 小时前
嵌入式开发学习日志36——stm32之USART串口通信前述
stm32·单片机·嵌入式硬件·学习
不太可爱的叶某人6 小时前
【学习笔记】kafka权威指南——第6章 可靠的数据传递
笔记·学习·kafka
2301_790994999 小时前
仿神秘海域/美末环境交互的程序化动画学习
学习·microsoft·交互
能不能别报错9 小时前
K8s学习笔记(十六) 探针(Probe)
笔记·学习·kubernetes
初圣魔门首席弟子9 小时前
C++ STL 向量(vector)学习笔记:从基础到实战
c++·笔记·学习