?和.和*在正则表达式里面的区别

在正则表达式中,?、. 和 * 是三种非常重要的元字符,它们各自有不同的功能和用途,以下是它们的区别:

  1. ?(问号)
    功能:表示前面的元素(字符、字符集、分组等)是可选的,即前面的元素可以出现0次或1次。
    举例:
    a?:匹配0个或1个a,例如可以匹配空字符串"“、“a”,但不能匹配"aa”。
    ab?c:匹配"ac"或"abc",因为b可以出现0次或1次。
    (abc)?:匹配空字符串"“或"abc”,因为整个abc可以出现0次或1次。
  2. .(点号)
    功能:表示匹配任意单个字符(除了换行符\n,除非使用/s修饰符)。
    举例:
    a.c:可以匹配"abc"、“adc”、“a1c"等,但不能匹配"ac”(因为中间没有字符)。
    ..:匹配任意两个字符,例如"ab"、“12”、“##“等。
    .*:匹配任意数量的字符(包括0个字符),例如"abc”、“123”、”"(空字符串)。
  3. *(星号)
    功能:表示前面的元素可以出现0次或多次。
    举例:
    a*:匹配0个或多个a,例如可以匹配"“(空字符串)、“a”、“aa”、“aaa"等。
    abc:匹配"ac"、“abc”、“abbc”、"abbbc"等,因为b可以出现0次或多次。
    (abc)
    :匹配””(空字符串)、“abc”、"abcabc"等,因为abc可以出现0次或多次。
    总结
    ? 表示前面的元素可选(0次或1次)。
    . 表示匹配任意单个字符(除换行符外)。
  • 表示前面的元素可以出现0次或多次。
    它们在正则表达式中用途广泛,组合使用可以实现复杂的匹配规则。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/69574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DevOps的个人学习

一、DevOps介绍 软件开发最初是由两个团队组成: 开发团队:负责设计和构建系统。运维团队:负责测试代码后部署上线,确保系统稳定安全运行。 这两个看似目标不同的团队需要协同完成一个软件的开发。DevOps整合了开发与运维团队&a…

数据库系统概论的第六版与第五版的区别,附pdf

我用夸克网盘分享了「数据库系统概论第五六版资源」,点击链接即可保存。 链接:https://pan.quark.cn/s/21a278378dee 第6版教材修订的主要内容 为了保持科学性、先进性和实用性,在第5版教材基础上对全书内容进行了修改、更新和充实。 在科…

攻防世界32 very_easy_sql【SSRF/SQL时间盲注】

不太会,以后慢慢看 被骗了,看见very_easy就点进来了,结果所有sql能试的全试了一点用都没有 打开源代码发现有个use.php 好家伙,这是真的在考sql吗...... 制作gopher协议的脚本: import urllib.parsehost "12…

11vue3实战-----封装缓存工具

11vue3实战-----封装缓存工具 1.背景2.pinia的持久化思路3.以localStorage为例解决问题4.封装缓存工具 1.背景 在上一章节,实现登录功能时候,当账号密码正确,身份验证成功之后,把用户信息保存起来,是用的pinia。然而p…

协议-WebRTC-HLS

是什么? WebRTC(Web Real-Time Communication) 实现 Web 浏览器和移动应用程序之间通过互联网直接进行实时通信。允许点对点音频、视频和数据共享,而无需任何插件或其他软件。WebRTC 广泛用于构建视频会议、语音通话、直播、在线游…

vscode设置保存时自动缩进和格式化

参考博客 如何在 VSCode 中自动缩进你的代码 | Linux 中国 省流 使用 Ctrl Shift P 来打开命令模式,搜索 Open User Settings 并按下回车你需要搜索 Auto Indent,并在 “编辑器:自动缩进(Editor: Auto Indent)” 中选择 “全部(Full)”P…

LSSVM最小二乘支持向量机多变量多步光伏功率预测(Matlab)

代码下载:LSSVM最小二乘支持向量机多变量多步光伏功率预测(Matlab) LSSVM最小二乘支持向量机多变量多步光伏功率预测 一、引言 1.1、研究背景与意义 随着全球能源危机和环境问题的日益严重,可再生能源的开发利用成为了世界各国…

从家庭IP到全球网络资源的无缝连接:Cliproxy的专业解决方案

数字化时代,家庭IP作为个人或家庭接入互联网的门户,其重要性日益凸显。然而,要实现从家庭IP到全球网络资源的无缝连接,并享受高效、安全、稳定的网络访问体验,往往需要借助专业的代理服务。Cliproxy,作为业…

ubuntu 22.04 安装 cuda sdk 11.8

ubuntu 22.04 安装 cuda sdk 11.8 linux kernel 版本太高的问题 主要思路是先安装 nv 显卡驱动,这会同时安装 kmd driver 然后安装 cuda sdk 11.x 时不安装 kernel driver 下载 display driver 搜索 display driver https://www.nvidia.com/en-us/drivers/ 选择比…

Day.23

leetcode 413.等差数列划分 问题:如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子数组 个数。 子数组 是数组中的一个连续序列…

leetcode 做题思路快查

58. 最后一个单词的长度 考虑从字符串size() - 1处倒序的定义两个指针;多的空格用while(j > 0 && s[j] ) j--跳过; 考虑"a" "_"这两个场景 s45. 跳跃游戏 II 思路:动态规划,f[i] 0...i-1跳到…

Ollama 部署 DeepSeek-R1 及Open-WebUI

Ollama 部署 DeepSeek-R1 及Open-WebUI 文章目录 Ollama 部署 DeepSeek-R1 及Open-WebUI〇、说明为什么使用本方案 一、 安装Ollama1、主要特点:2、安装3、验证 二、Ollama 部署 DeepSeek1、部署2、模型选用3、Ollama 常用命令4、Ollama模型默认存储路径 安装open-w…

feign Api接口中注解问题:not annotated with HTTP method type (ex. GET, POST)

Bug Description 在调用Feign api时,出现如下异常: java.lang.IllegalStateException: Method PayFeignSentinelApi#getPayByOrderNo(String) not annotated with HTTPReproduciton Steps 1.启动nacos-pay-provider服务,并启动nacos-pay-c…

网络计算机的相关概念整理

网络计算机的五个组成部分 单个计算机是无法进行通信的。所以需要借助网络。 下面介绍一些在网络里常见的设备。 一、服务器 服务器是在网络环境中提供计算能力并运行软件应用程序的特定IT设备 它在网络中为其他客户机(如个人计算机、智能手机、ATM机等终端设备&…

Python微博动态爬虫

本文是刘金路的《语言数据获取与分析基础》第十章的扩展,详细解释了如何利用Python进行微博爬虫,爬虫内容包括微博指定帖子的一级评论、评论时间、用户名、id、地区、点赞数。 整个过程十分明了,就是用户利用代码模拟Ajax请求,发…

[NKU]C++安装环境 VScode

bilibili安装教程 vscode 关于C/C的环境配置全站最简单易懂!!大学生及初学初学C/C进!!!_哔哩哔哩_bilibili 1安装vscode和插件 汉化插件 ​ 2安装插件 2.1 C/C 2.2 C/C Compile run ​ 2.3 better C Syntax ​ 查看已…

SpringCloud学习笔记(五)

8.Seata分布式事务 8.1. Seata简介 Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。 8.2. Seata工作组件 XID:全局事务的唯一标识,在微服务调用链中传递,绑定到服务的事务的上下文。TC&…

(14)gdb 笔记(7):以日志记录的方式来调试多进程多线程程序,linux 命令 tail -f 实时跟踪日志

(44)以日志记录的方式来调试多进程多线程程序 : 这是老师的日志文件,可以用来模仿的模板: (45)实时追踪日志的 tail -f 命令: (46) 多种调试方法结合起来用 …

重生之我要当云原生大师(十四)分析和存储日志

目录 一、简述常用的日志文件所存储的消息类型。 二、syslog的优先级? 三、维护准确时间的意义? 一、简述常用的日志文件所存储的消息类型。 1. 系统日志文件 /var/log/messages 消息类型:通用的系统日志文件,记录系统启动、…

Goland 内存逃逸问题

内存逃逸是什么? 在go语言中,内存分配存在两个方式:堆分配;栈分配。 栈分配:是在函数调用时为局部变量分配内存,当函数返回时,这些内存会自动释放。 堆分配:通过 new 或者 make 函…