正则的介绍

2024-06-16 11:12
文章标签 正则 介绍

本文主要是介绍正则的介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、正则

是一种用来描述、匹配和操作字符串的工具。它由一系列字符组成的模式构成,可以用来检索、替换、提取或验证文本数据。

二、正则表达式

由普通字符和特殊字符组成,通过定义匹配规则来实现对字符串的处理

三、正则表达式的基本语法规范

  1. 字符匹配:

    • 普通字符:正则表达式中的普通字符(例如字母、数字、标点符号等)表示需要精确匹配该字符。

    • 特殊字符:正则表达式中的一些特殊字符具有特殊的含义,如元字符(^ $ . * + ? ( ) [ ] { } | \) 和转义字符(\)。

    • 字符类:使用方括号 [ ] 表示一个字符类,可以指定多个可选字符,例如 [abc] 匹配字符 abc

  2. 重复匹配:

    • 量词:使用量词来指定匹配字符出现的次数,如 *(0 次或多次)、+(1 次或多次)、?(0 次或 1 次)等。

    • 贪婪与非贪婪:正则表达式默认是贪婪模式,即尽可能多地匹配字符,可以使用 *?+??? 等非贪婪量词使匹配变为非贪婪模式。

  3. 锚点:

    • ^:匹配输入字符串的开始位置。

    • $:匹配输入字符串的结束位置。

  4. 分组和捕获:

    • ( ):用于将多个字符组合成一个子表达式,可以对子表达式进行分组和捕获。

  5. 转义字符:

    • \:用于转义特殊字符,例如 \. 表示匹配实际的点号字符。

  6. 预定义字符类:

    • \d:匹配任意一个数字字符,相当于 [0-9]

    • \D:匹配任意一个非数字字符,相当于 [^0-9]

    • \w:匹配任意一个字母、数字或下划线字符,相当于 [A-Za-z0-9_]

    • \W:匹配任意一个非字母、数字或下划线字符,相当于 [^A-Za-z0-9_]

    • \s:匹配任意一个空白字符,包括空格、制表符、换行符等。

    • \S:匹配任意一个非空白字符。

  7. 选择和排除:

    • |:用于选择多个表达式中的一个,类似于逻辑的“或”操作。

    • [^]:在字符类中使用 ^ 表示排除某些字符,例如 [^abc] 匹配除了 abc 之外的任意字符。

  8. 其他元字符和特殊序列:

    • .:匹配除换行符外的任意一个字符。

    • *:匹配前面的字符零次或多次。

    • +:匹配前面的字符一次或多次。

    • ?:匹配前面的字符零次或一次。

    • {n}:匹配前面的字符恰好 n 次。

    • {n,}:匹配前面的字符至少 n 次。

    • {n,m}:匹配前面的字符至少 n 次且不超过 m 次。

    • \b:匹配单词边界。

    • \B:匹配非单词边界。

四、常用的表达式

  1. 匹配数字:\d
  2. 匹配字母:[a-zA-Z]
  3. 匹配邮箱地址:\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z|a-z]{2,}\b
  4. 匹配 URL:(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~|!:,.;]*[-A-Za-z0-9+&@#/%=~|]
  5. 匹配手机号码:^1[3-9]\d{9}
  6. 匹配日期:\d{4}-\d{2}-\d{2}
  7. 匹配 IP 地址:\b(?:[0-9]{1,3}.){3}[0-9]{1,3}\b
  8. 匹配身份证号:\d{17}[\dXx]

这篇关于正则的介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066302

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

20.Spring5注解介绍

1.配置组件 Configure Components 注解名称说明@Configuration把一个类作为一个loC容 器 ,它的某个方法头上如果注册7@Bean , 就会作为这个Spring容器中的Bean@ComponentScan在配置类上添加@ComponentScan注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <context:component-scan>@Sc

C++标准模板库STL介绍

STL的六大组成部分 STL(Standard Template Library)是 C++ 标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法,使得 C++ 编程变得更加高效和方便。STL 包括了 6 大类组件,分别是算法(Algorithm)、容器(Container)、空间分配器(Allocator)、迭代器(Iterator)、函数对象(Functor)、适配器(Adapter)

一二三应用开发平台应用开发示例(4)——视图类型介绍以及新增、修改、查看视图配置

调整上级属性类型 前面为了快速展示平台的低代码配置功能,将实体文件夹的数据模型上级属性的数据类型暂时配置为文本类型,现在我们调整下,将其数据类型调整为实体,如下图所示: 数据类型需要选择实体,并在实体选择框中选择自身“文件夹” 这时候,再点击生成代码,平台会报错,提示“实体【文件夹】未设置主参照视图”。这是因为文件夹选择的功能页面,同样是基于配置产生的,因为视图我们还没有配置,所以会报错。

49-1 内网渗透 - Bypass UAC介绍

一、Bypass UAC         用户账户控制(UAC)是Windows操作系统的一种安全机制,旨在防止未经授权的应用程序自动安装并防止非授权修改系统设置。它确保应用程序和任务通常在非管理员账户的安全上下文中运行,除非明确需要管理员权限,用户才会被提示确认。         对于非RID 500的管理员用户(除了内置的Administrator账户),当他们登录时,系统会为其分配两个访

okhttp3的详细介绍

这篇文章说下OkHttp的基本用法,是最新的3哦,如果你曾经在网上搜索OkHttp怎么使用发现有些类没有了可能是因为人家说的是2。首先说下OkHttp3是Java和Android都能用,Android还有一个著名网络库叫Volley,那个只有Android能用。导入自己到入jar包,别漏了okio:okhttp-3.3.0.jarokio-1.8.0.jarmaven方式:<dependen

Retrofit详细介绍

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51910837 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的收货! 一、Retrofit 是什么? Retrofit is a type-safe HTTP client for Android and java. Retrofit 是与 Web 服务器提

Retrofit介绍案例

Retrofit这东西我就不多做解释了,反正最近应用很广,基本都快和OkHttp一起成为安卓的事实网络访问标准框架了。   这么好的一个东西,官网文档实在是不算太好,说的不太清晰。按官网的经常会有“Could not locate ResponseBody converter for”问题。 反正折腾了一番,终于跑出来了一个例子。这里把正确的例子写出来,方便大家参考。 首先要注意

okclient2详细介绍

在 Java 程序中经常需要用到 HTTP 客户端来发送 HTTP 请求并对所得到的响应进行处理。比如屏幕抓取(screen scraping)程序通过 HTTP 客户端来访问网站并解析所得到的 HTTP 文档。在 Java 服务端程序中也可能需要使用 HTTP 客户端来与第三方 REST 服务进行集成。随着微服务(microservices)的流行,HTTP 成为不同服务之间的标准集成方式。H

Hbase特性介绍

1、什么是Hbase。 是一个高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统。 适合于存储非结构化数据,基于列的而不是基于行的模式 如图:Hadoop生态中HBase与其他部分的关系。 2、关系数据库已经流行很多年,并且Hadoop已经有了HDFS和MapReduce,为什么需要HBase? Hadoop可以很好地解决大规模数据的离线批量处理问题,但是,受限于Hadoo