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

正则表达式中常见字符的用法介绍

正则表达式(Regular Expression,简称Regex)是一种文本模式描述的方法,包括普通字符(如a到z之间的字母)和特殊字符(称为“元字符”)。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在前端开发中,正则表达式常用于表单验证、字符串搜索、替换等操作。

以下是正则表达式中常见字符的用法介绍:

1. 普通字符

  • 普通字符:除了特殊字符(如.*?+|()[]{}^$\等)之外的字符都是普通字符。普通字符在正则表达式中代表它们自身,用于匹配文本中相应的字符。

2. 特殊字符

  • .:匹配除换行符(\n)之外的任意单个字符。
  • *:匹配前面的字符零次或多次。
  • +:匹配前面的字符一次或多次。
  • ?:匹配前面的字符零次或一次。
  • |:逻辑“或”操作符,匹配左侧或右侧的表达式。
  • ^:匹配输入字符串的开始位置,如果在[]内则表示否定字符集。
  • $:匹配输入字符串的结束位置。
  • ():分组捕获,将多个字符组合为一个整体,并可以通过反向引用来引用捕获的内容。
  • []:字符集,匹配方括号中的任意一个字符。如果方括号中的第一个字符是^,则表示匹配不在方括号中的任意字符。
  • {}:量词,指定前面的字符或子表达式重复的次数。例如,{n}表示重复n次,{n,}表示重复n次或更多次,{n,m}表示重复n到m次。
  • \:转义字符,用于转义下一个字符,使其失去特殊含义,变成普通字符。例如,\.匹配.字符本身。

3. 元字符

  • \d:匹配数字字符,等同于[0-9]
  • \D:匹配非数字字符,等同于[^0-9]
  • \w:匹配字母、数字或下划线字符,等同于[A-Za-z0-9_]
  • \W:匹配非单词字符,等同于[^A-Za-z0-9_]
  • \s:匹配空白字符,包括空格、制表符、换行符等。
  • \S:匹配非空白字符。
  • \b:匹配单词边界,即单词与空格之间的位置。
  • \B:匹配非单词边界。

4. 字符类

  • 字符范围:在[]内使用-来表示字符范围,例如[a-z]匹配任意小写字母。
  • 否定字符集:在[]内的第一个字符使用^来表示否定字符集,例如[^abc]匹配除了abc之外的任意字符。

以下是一些关于正则表达式的具体示例:

1. 匹配电子邮件地址

正则表达式

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

解释

  • ^$ 分别表示字符串的开始和结束。
  • [a-zA-Z0-9._%+-]+ 匹配一个或多个字母、数字、点、下划线、百分号、加号或减号(注意:这里根据实际需要可能需要调整)。
  • @ 是电子邮件地址中必须的分隔符。
  • [a-zA-Z0-9.-]+ 匹配域名部分,可以包含字母、数字、点或短横线(注意:实际规则可能更复杂)。
  • \. 匹配点字符(.在正则表达式中是特殊字符,需要用\转义)。
  • [a-zA-Z]{2,} 匹配顶级域名,通常由两个或更多字母组成。

应用场景
用于表单验证,确保用户输入的电子邮件地址格式正确。

2. 匹配并提取URL中的协议和域名

正则表达式

^(https?:\/\/)([^\s/]+)

解释

  • ^ 表示字符串的开始。
  • (https?:\/\/) 是一个捕获组,匹配http://https://
  • https? 匹配http后跟零个或一个s字符。
  • :\/\/ 匹配字面量字符串://
  • ([^\s/]+) 是另一个捕获组,匹配一个或多个非空白且非斜杠(/)的字符,用于捕获域名。

应用场景
从完整的URL中提取出协议(如httphttps)和域名部分。

3. 验证密码强度

正则表达式

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

解释

  • 使用了四个前瞻断言((?=...))来确保密码包含至少一个小写字母、一个大写字母、一个数字和一个特殊字符。
  • [A-Za-z\d@$!%*?&]{8,} 确保密码总长度至少为8个字符,且只包含允许的字符集。

应用场景
在注册或更改密码时,验证密码的强度。

4. 匹配并替换日期格式(例如,将MM/DD/YYYY转换为YYYY-MM-DD

原始字符串03/15/2023

正则表达式(用于查找):

(\d{2})\/(\d{2})\/(\d{4})

替换为

$3-$1-$2

解释

  • 使用了三个捕获组来分别匹配月、日和年。
  • 替换时,使用反向引用来重新排列这些部分。

应用场景
在数据处理或文档格式化中,将日期从一种格式转换为另一种格式。

5. 匹配HTML标签(简化版)

正则表达式(注意:不推荐用于解析复杂的HTML):

<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s*\/>)

解释

  • <([a-z]+) 匹配<后跟一个或多个小写字母(标签名),并将其捕获为一个组。
  • ([^<]+)* 匹配零个或多个非<字符(标签属性,但这里简化处理)。
  • (?:>(.*)<\/\1>|\s*\/>) 是一个非捕获组,匹配自闭合标签或包含内容的标签。

应用场景
在需要简单提取或操作HTML标签内容的场景中,但请注意,这种方法不适用于复杂的HTML文档或嵌套标签。

相关文章:

正则表达式中常见字符的用法介绍

正则表达式&#xff08;Regular Expression&#xff0c;简称Regex&#xff09;是一种文本模式描述的方法&#xff0c;包括普通字符&#xff08;如a到z之间的字母&#xff09;和特殊字符&#xff08;称为“元字符”&#xff09;。正则表达式使用单个字符串来描述、匹配一系列符合…...

Vue3.0组合式API:依赖注入provide和inject实现跨层组件的通信

Vue3.0组合式API系列文章&#xff1a; 《Vue3.0组合式API&#xff1a;setup()函数》 《Vue3.0组合式API&#xff1a;使用reactive()、ref()创建响应式代理对象》 《Vue3.0组合式API&#xff1a;computed计算属性、watch监听器、watchEffect高级监听器》 《Vue3.0组合式API&…...

VSCode中配置C/C++环境

在Visual Studio Code&#xff08;VSCode&#xff09;中配置C/C环境是一个相对直接且功能强大的过程&#xff0c;它能让开发者利用VSCode的诸多便利功能来编写、编译和调试C/C代码。以下是一个详细的步骤指南&#xff0c;涵盖了从安装必要的软件到配置编译器、调试器以及VSCode…...

vue实现鼠标滚轮控制页面横向滑动

先看效果 20240919_095531 1.首先创建一个xScroll.vue组件 <template><div class"main" v-size-ob"mainSize"><div class"v-scroll"><div class"content"><slot></slot></div></div>…...

【Git使用】删除Github仓库中的指定文件/文件夹

前言&#xff1a; 上篇文章带大家上传了第一个项目至github,那要是想删除仓库中的指定文件夹怎么办&#xff1f;在Github中 仓库是无法通过鼠标操作直接删除文件和文件夹的&#xff0c;那只能通过 git 命令来执行删除操作。接下来就带大家进行操作。 详细步骤&#xff1a; 一…...

Iptables命令常用命令

前言:下是一些非常实用的 iptables 命令合集&#xff0c;涵盖网络攻击防护和日常网络安全防护 1. 查看当前规则 iptables -L -v -n查看现有的所有规则&#xff0c;-v 显示详细信息&#xff0c;-n 禁止解析IP地址和端口以加快显示速度。 2. 清空所有规则 iptables -F清除所有已…...

前端开发之原型模式

介绍 原型模式本质就是借用一个已有的实例做原型&#xff0c;在这原型基础上快速复制出一个和原型一样的一个对象。 class CloneDemo {name clone democlone(): CloneDemo {return new CloneDemo()} } 原型原型链 函数&#xff08;class&#xff09;都有显示原型 prototyp…...

分布式缓存服务Redis版解析与配置方式

一、Redis分布式缓存服务概述 Redis是一款高性能的键值对&#xff08;Key-Value&#xff09;存储系统&#xff0c;通常用作分布式缓存服务。它基于内存运行&#xff0c;支持丰富的数据类型&#xff0c;并具备高并发、低延迟的特点&#xff0c;非常适合用于缓存需要频繁访问的数…...

WordPress建站钩子函数及使用

目录 前言&#xff1a; 使用场景&#xff1a; 一、常用的wordpress钩子&#xff08;动作钩子、过滤器钩子&#xff09; 1、动作钩子&#xff08;Action Hooks&#xff09; 2、过滤器钩子&#xff08;Filter Hooks&#xff09; 二、常用钩子示例 1、添加自定义 CSS 和 JS…...

Qt 模型视图(二):模型类QAbstractItemModel

文章目录 Qt 模型视图(二)&#xff1a;模型类QAbstractItemModel1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色1.6.总结 Qt 模型视图(二)&#xff1a;模型类QAbstractItemModel ​ 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模…...

算法打卡 Day41(动态规划)-理论基础 + 斐波那契数 + 爬楼梯 + 使用最小花费爬楼梯

文章目录 理论基础Leetcode 509-斐波那契数题目描述解题思路 Leetcode 70-爬楼梯题目描述解题思路 Leetcode 746-用最小花费爬楼梯题目描述解题思路 理论基础 动态规划&#xff0c;简称 DP&#xff0c;其中的每一个状态一定是由上一个状态推导出来的&#xff0c;而贪心算法没有…...

鸿蒙环境服务端签名直传文件到OSS

本文介绍如何在鸿蒙环境下将文件上传到OSS。 背景信息 鸿蒙环境是当下比较流行的操作环境&#xff0c;与服务端签名直传的原理类似&#xff0c;鸿蒙环境上传文件到OSS是利用OSS提供的PutObject接口来实现文件上传到OSS。关于PutObject的详细介绍&#xff0c;请参见PutObject。…...

计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI

首先安装需要的python库&#xff0c; 安装完之后利用navicat导入数据库文件bili100.sql到mysql中&#xff0c; 再在pycharm编译器中连接mysql数据库&#xff0c;并在设置文件中将密码修改成你的数据库密码。最后运行app.py&#xff0c;打开链接&#xff0c;即可运行。 B站爬虫数…...

solidwork剪裁实体

之前是这样&#xff1a; 效果如下&#xff1a;...

Junit与Spring Test简单使用

Junit与Spring Test简单使用 Junit5简介Junit5 注解Junit5与Spring结合 差异概览MockingMockBeanSpyBeanDemo 注意事项 又要写测试代码了&#xff0c;总结记录一下。 Junit5简介 与单一模块设计的Junit4不同,Junit5引入了模块化架构,由三个主要子项目组成&#xff1a; JUnit Pl…...

Vxe UI vue vxe-table 实现自适应列宽,根据内容自适应列的宽度

Vxe UI vue vxe-table 实现自适应列宽&#xff0c;根据内容自适应列的宽度 之前老版本是通过计算字符数量&#xff0c;然后给动态给每一列设置宽度&#xff0c;不仅麻烦&#xff0c;还不好复用。 看了 API 发现 v4.7 和 v3.9 版本已经直接就能支持了&#xff0c;只需加上 widt…...

document.visibilityState 监听浏览器最小化

1.document.hidden&#xff1a; 表示页面是否隐藏的布尔值。页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 &#xff08;注意&#xff0c;页面被其他软件遮盖并不算隐藏&#xff0c;比如打开的 sublime 遮住了浏览器&#xff09;。 2.document.visibilityState&#xff…...

前端框架对比和选择

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; 前端框架选择是前端开发中的关键决策&#xff0c;因为它影响项目的开发效率、维护成本和可扩展性。当前&#xff0c;最流行的前端框架主要包括 React、Vue 和 Angular。它们各有优劣&#xff0c;适用于不同…...

Linux 进程2

环境变量 再Linux操作系统中一切皆文件&#xff0c;这个环境变量自然也是一个文件&#xff0c;它的作用是辅助我们使用操作系统还可以辨识我们是什么用户(一般用户&#xff0c;root用户)。 env是读取完整环境变量的指令&#xff0c;里面记录了许多我登录操作系统所用的用户的信…...

WPF入门教学六 Grid布局进阶

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;Grid布局是一种非常强大且灵活的布局控件&#xff0c;它允许你创建复杂的用户界面。以下是Grid布局的一些进阶技巧和教学&#xff1a; 一、基本概念回顾 Grid定义&#xff1a;Grid是一个用于布局…...

如何通过MobaXterm中文版快速构建一体化远程管理环境

如何通过MobaXterm中文版快速构建一体化远程管理环境 【免费下载链接】Mobaxterm-Chinese Mobaxterm simplified Chinese version. Mobaxterm 的简体中文版. 项目地址: https://gitcode.com/gh_mirrors/mo/Mobaxterm-Chinese 远程管理工具的选择常常让系统管理员和开发者…...

从投影到点云:拆解DLP4500在结构光3D重建中的核心工作流与硬件选型思考

从投影到点云&#xff1a;拆解DLP4500在结构光3D重建中的核心工作流与硬件选型思考 在工业检测、逆向工程和文物数字化领域&#xff0c;结构光3D重建技术正以亚毫米级精度重新定义非接触式测量标准。作为该技术的核心组件&#xff0c;德州仪器的DLP4500数字微镜器件&#xff08…...

1. 无需专业设备的3D建模革命:Meshroom如何让人人都能创建三维模型

1. 无需专业设备的3D建模革命&#xff1a;Meshroom如何让人人都能创建三维模型 【免费下载链接】Meshroom Node-based Visual Programming Toolbox 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom 你是否曾经想将现实世界中的物体转化为数字3D模型&#xff0c;却…...

Kimi-VL-A3B-Thinking开源可部署:提供ONNX导出路径与推理引擎适配

Kimi-VL-A3B-Thinking开源可部署&#xff1a;提供ONNX导出路径与推理引擎适配 1. 模型简介 Kimi-VL-A3B-Thinking是一款高效的开源混合专家&#xff08;MoE&#xff09;视觉语言模型&#xff08;VLM&#xff09;&#xff0c;具备以下核心特点&#xff1a; 参数高效&#xff…...

BilibiliDown终极指南:3步轻松下载B站视频的完整教程

BilibiliDown终极指南&#xff1a;3步轻松下载B站视频的完整教程 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi…...

系统安全组件管理工具:Windows环境下安全服务的精细化控制方案

系统安全组件管理工具&#xff1a;Windows环境下安全服务的精细化控制方案 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mir…...

中微半导体冲刺港股:年营收11亿 利润2.8亿 周彦套现3.47亿

雷递网 雷建平 4月5日中微半导体( 深圳)股份有限公司&#xff08;简称&#xff1a;“中微半导体”&#xff09;日前递交招股书&#xff0c;准备在港交所上市。中微半导体2022年8月在科创板上市&#xff0c;发行6300万股&#xff0c;发行价为30.86元&#xff0c;募资总额19.44亿…...

图像恢复新基准:从复杂到简约,NAFNet如何重塑设计范式

1. 图像恢复的困境与NAFNet的破局之道 每次看到老照片上的划痕或是手机拍糊的夜景&#xff0c;总让人忍不住想&#xff1a;要是能一键修复该多好。这正是图像恢复技术要解决的问题——让模糊、噪点、压缩失真等受损图像重获新生。但你可能不知道&#xff0c;这个领域正面临着一…...

汽车BCM控制器实战:从零搭建HIL测试环境(附Python自动化脚本)

汽车BCM控制器HIL测试环境搭建实战指南 车身控制模块&#xff08;BCM&#xff09;作为现代汽车电子架构中的核心枢纽&#xff0c;其稳定性直接影响着整车的舒适性与安全性。本文将带您从零开始构建一套完整的硬件在环&#xff08;HIL&#xff09;测试环境&#xff0c;覆盖从台架…...

前后端分离网站系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

&#x1f4a1;实话实说&#xff1a;有自己的项目库存&#xff0c;不需要找别人拿货再加价&#xff0c;所以能给到超低价格。摘要 随着互联网技术的快速发展&#xff0c;传统的前后端耦合架构在开发效率和维护成本上逐渐显现出局限性&#xff0c;前后端分离架构因其灵活性、可扩…...