首页 > 其他分享 >正则表达式

正则表达式

时间:2024-06-04 13:30:02浏览次数:21  
标签:字符 匹配 正则表达式 所有 字符串 任意 表达式

正则表达式含义:

正则表达式是由一些具有特殊含义的字符组成的字符串,多用于查找、替换符合规则的通俗来讲就是按照某种规则来匹配符合条件的字符串。

一、元字符

元字符:即为有特定含义的字符,常见的元字符如下:

代码说明
.匹配除换行符以外的任意字符,只有一个字符例外 (\ n)
\s匹配任意的空白符(包含Tab和换行符)包括空格、制表符、换页符等
\d匹配任意字符
\w匹配字母或数字或下划线或汉字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

二、反义字符

反义字符:多用于查找除某个字符以外其他任意字符均可以的情况,常用的反义字符如下:

代码说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意不是空白符的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符

三、特殊字符

若要匹配特殊字符,必须首先使用字符“转义”,即将反斜杠字符(\)放在它们前面

代码说明
$匹配输入字符串的结尾位置,要匹配字符串$本身,请使用 \ $
()标记一个子表达式的开始和结束位置,要匹配字符串本身,请使用 \
*匹配前面子表达式零次或多次,要匹配 *字符,请使用 \ *
+匹配前面子表达式零次或多次,要匹配 +字符,请使用 \ +
.匹配除换行符\n以外的任意字符,要匹配  . 字符,请使用 \ .
[标记一个中括号表达式的开始,要匹配 [ 字符,请使用 \ [
?匹配前面子表达式零次或多次,或指明一个非贪婪限定字符,要匹配 ? 字符,请使用 \ ?
\将下一个字符标记为特殊字符、或愿意字符、或向后引用
^匹配输入字符串的开始位置,要匹配 $ ,请使用 \ $
{标记限定符表达式的开始,要匹配{,请使用 \ {
|指明两项之间的一个选择,要匹配| ,请使用 \ |

四、限定符

限定符:用来指正则表达式的一个给定组件必须要出现多次才能满足匹配,常用的限定符如下:

代码说明
*匹配前面表达式零次或多次.例如,zo* 能匹配 “z” 以及 “zoo”
+匹配前面表达式一次或更多次.例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”
?匹配前面表达式零次或一次,例如‘di?’ 能匹配’di’以及’did
{n}至少匹配n次. ‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o
{n, }重复n次或更多次. 例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。
[标记一个中括号表达式的开始,要匹配 [ ,请使用 \ [
{n,m}m和n均为非负整数,其中n<m,最少匹配n次最多匹配m次

五、正则表达式常用匹配规则

1. 校验字符的表达式

(1)匹配所有的小写字母:^[a-z]$

(2)匹配所有的大写字母:^[A-Z]$

(3)匹配所有的大小写字母:^[a-zA-Z]$

(4)匹配除了小写字母以外的所有的字母:^[^a-z]$

(5)匹配除(\) (/) (^) 之外的所有字符:^[^\\\/ \^]$

(6)匹配除双引号(")和单引号(') 之外的所有字符:^[^\"\']$

2. 校验数字的表达式

(1)匹配所有的数字:^[0-9]*$

(2)匹配所有的数字、句号和减号:^[0-9\. \-]*$

(3)匹配n位数字:^\d{n}$

(4)匹配至少n位数字:^\d{n, }$

(5)匹配n-m位数字:^\d{n,m}$

(5)只能输入长度为3的字符:"^.{3}$"

(6)匹配零和非零开头的数字:^(0|[1-9][0-9]*)$

(7)匹配所有正数:^[0-9]{1, }$ 或者 ^[0-9]+$

(8)匹配所有整数:^\{0,1} [0-9] {1, }$ 或者 ^\-?[0-9]+$

(9)匹配所有非负整数:^\d+$ 或者 ^[1-9]\d*|0$

(10)匹配所有浮点数:^[-] [0-9]+\ .?[0-9]+$ 或者 ^\-?[0-9]*\ .?[0-9]*$

(11)只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"

(12)匹配所有包含一个以上的字母、数字下划线的字符串:^[a-zA-Z0-9_] {1, }$ 或者 

^\-?[0-9] *\ .?[0-9]*$

3. 确定重复出现

(1)所有的字母和下划线:^[a-zA-Z_]$

(2)字母a:^a$

(3)aaaa:^a{4}$

(4)aa, aaa或aaaa:^a{2,4}$

(5)a, aa或aaa:^a{1,3}$

(6)包含多余两个a的字符串:^a{2,}$

(7)所有的两个字符:.{2]

链接:正则表达式在线测试

标签:字符,匹配,正则表达式,所有,字符串,任意,表达式
From: https://blog.csdn.net/m0_74460387/article/details/139395136

相关文章

  • Django使用正则表达式
    本书1-7章样章及配套资源下载链接:https://pan.baidu.com/s/1OGmhHxEMf2ZdozkUnDkAkA?pwd=nanc 源码、PPT课件、教学视频等,可以从前言给出的下载信息下载,大家可以评估一下。在Django框架的新版本(v2.0+)中,URLconf模块虽然更改了配置方式,但它依然可以对老版本进行兼容,兼容的......
  • 10. 正则表达式匹配
    给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.'匹配任意单个字符'*'匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示例1:输入:s="aa",p="a"输出:false解释:"a"无法匹配"aa"整个字......
  • 正则表达式
    文章目录正则表达式一、正则表达式概述1.1定义1.2作用二、正则表达式工具和使用方法2.3★★★使用正则表达式的分析方法三、简单的正则表达式(限定符,表示限定要匹配字符出现的次数)3.1匹配单个字符3.2?匹配可选字符3.3*+其他限量操作符3.4大括号语法——限定匹......
  • c++正则表达式汇总
    个人遇到的坑:使用''时需要携程'\'转译符号,否则匹配不正常正则表达式Regex(regularexpression)是一种强大的描述字符序列的工具。在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分。一、校验数字的表达式数字:[1]$n位的数字:^\d{n}$至少n位的数字:^\d{......
  • Python正则表达式实践
    Python正则表达式实践1.正则表达式简介正则表达式是一种用来描述或匹配字符串的模式。它广泛应用于字符串搜索、替换和解析。2.导入re模块Python中的正则表达式功能主要由re模块提供。你可以通过以下方式导入它:importre3.正则表达式基本语法3.1匹配单个字符.匹配......
  • Python正则表达式
    语法关于正则表达式的相关知识,大家可以阅读一篇非常有名的博客叫《正则表达式30分钟入门教程》,读完这篇文章后你就可以看懂下面的表格,这是我们对正则表达式中的一些基本符号进行的扼要总结。符号解释示例说明.匹配任意字符b.t可以匹配bat/but/b#t/b1t等\w匹配字母/......
  • MySQL - [09] 正则表达式
    转载:https://mp.weixin.qq.com/s/7RavuYGs9SthX2pxGJppqw  select*fromt1wherenamerlike'^[a-zA-Z]+$';  一、简介正则表达式使用rlike作为模式匹配的关键字,其语法结构如下selectcolumn_namefromtable_namewherecolumn_namerlike'pattern';column_n......
  • 正则表达式
     1#例子1:匹配账户,只能有字母和数字组成,长度限制6-10位2r1='^[0-9A-Za-z]{6,10}$'3a1='1234567AbC'4print(re.findall(r1,a1))567#例子2:匹配qq号:要求纯数字,长度5-11,第一位不为08r2=r'^[1-9][0-9]{4,10}$'9a2='123987678'10pr......
  • 如何使用navigator对象,手写一个正则表达式验证邮箱
    1:如何使用navigator对象navigator对象是JavaScript中的一个内置对象,用于获取浏览器和操作系统的信息。以下是一些常用的navigator属性和方法:navigator.userAgent:返回用户代理字符串,可以用于检测浏览器类型和版本。navigator.platform:返回操作系统平台。na......
  • 用正则表达式进行搜索
    检索列prod_name包含文本1000的所有行selectprod_namefromproductswhereprod_nameREGEXP'1000'orderbyprod_name;.在正则中表示一个字符selectprod_namefromproductswhereprod_nameREGEXP'.000'orderbyprod_name;结果:Jet1000Jet2000OR匹配sel......