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

正则表达式

时间:2023-08-27 17:55:54浏览次数:36  
标签:字符 ab 匹配 正则表达式 可以 字符串

前言:今天学习的时候遇到了正则表达式,还不怎么会,故来学习一下

1.1 什么是正则表达式

正则表达式是用于匹配字符串中字符组合的模式,当搜索文本中的数据是,可以使用搜索模式来描述搜索的内容,

很多语言都支持正则表达式,其实就是匹配字符的规则,可以用来判断字符串中是否含有某个字符或者某个字符串

或者判断用户输入的手机号是否合法

1.2 定义正则表达式

正则表达式的规则为

const 变量名 = /表达式内容/;

一个实例

var a=/aa/i;

上面的/aa/i是一个正则表达式,aa是模式,在搜索中使用,i是修饰符,把搜索改为大小写不敏感

1.3 使用字符串

在js中,正则表达式有两个字符串方法,search()replace 前一个方法使用表达式来搜索匹配,然后返回匹配

位置,replace() 方法返回模式被替换处修改后的字符串

具体使用如下

var str = "aBc";
var n = str.search(/b/i);
alert(n);

返回的是b的位置,1,由于设置了i,既大小写不敏感,所以会正常查询

var str = "Visit Microsoft!";
var res = str.replace(/microsoft/i, "W3School");

1.4 正则表达式的修饰符

i 执行对大小写的匹配

g 执行全局匹配,查找所有匹配而不是在找到第一个匹配后停止

m 执行多匹配

1.5 正则表达式的限定符

1.5.1 ?

在正则表达式中?是一个限定符表示前面的字符可以出现0次或者1次

比如 /used?这个正则表达式可以匹配used也可也匹配use

1.5.2 *

*表示前面的字符可以没有,但也可以出现零次或者多次,比如 /ab*c

这个正则表达式可以匹配abc,匹配ab,也可也匹配abbbbbc,都可以与之匹配

1.5.3 +

该限定符和*类似,只不过*可以匹配前面字符未出现或者多次出现的字符串,而+只能匹配前面字符只出现一次

或多次的情况,也就是至少出现一次。

1.5.4{}

用于限定字符出现的次数

比如/ab{2}c就是限定b只出现两次

/ab{2,4}c就是限定b出现2到4次

/ab{2,}就是大于等于2

如果想要重复的不是单个字符,而是字符串,可以用括号括起来,比如

/(ab){2,3}c

就是ab可重复出现2到三次

1.6 | 或运算符

表示选择

比如/a(cat|dog)

匹配可以是 acat ,也可也是 adog

注意添加括号

1.7 字符类

1.7.1 []

该字符类可以快速匹配大小写和字母

比如/[a-z]+

可以匹配由a-z组成的所有字符串

注意,不能省略+

如果为/[a-z]则匹配的是a-z的所有小写字母,而不是字符串

与之用法类似的还有

/[A-Z]+ 用来匹配大写

/[1-9]+用来匹配数字

也可也匹配使用

/[1-0a-z]+

1.7.2 [1]

用该符号可以匹配除了后面的所有字符

比如/^[a-z]+可以匹配到所有不由a-z组成的字符串

1.8 元字符

\d代表数字字符等同与[0-9]可以匹配任何一个数字字符,注意不是字符串

\w表示单词字符,也就是匹配所有的大小写字母,数字,下划线,注意是字符,不是字符串

\s代表空白符,包含table和换行符

\b 规定匹配的字符必须存在单词边界,比如/aa\b 就只会匹配 aa,不会匹配aaa

\D代表非数字字符,就是匹配不符合数字字符的字符

\W

\S 依次类推这俩的意思

.表示任意字符,如果需要匹配.需要用到\.进行转义

.+可以匹配任意字符串,但不包含空字符.*比前者多了空字符

^ 可以匹配行首

比如/a^可以匹配所有行首的a

/a$可以匹配所有行尾的a,注意是字符

1.9 贪婪模式和懒惰模式

具体见此篇


  1. ↩︎

标签:字符,ab,匹配,正则表达式,可以,字符串
From: https://www.cnblogs.com/rpup/p/17660552.html

相关文章

  • java 正则表达式 非捕获组(特殊构造)
    针对JavaAPI文档中的正则表达式关于特殊构造(非捕获组)的说明,例如:1.(?:X)X,asanon-capturinggroup2.(?idmsux-idmsux) Nothing,butturnsmatchflagson-off3.(?idmsux-idmsux:X)  X,asanon-capturinggroupwiththegivenflagson-off4.(?=......
  • 正则表达式
    规则符号描述样例?0次或1次runo?b->runb、runob+1次或多次runo+b->runob、runoob、runooob*0次、1次或多次runo*b->runb、runob、runoob、runooob.匹配除\n、\r之外的任何字符==[^\n\r]^匹配输入字符串的开始位置$匹配输入字符串的......
  • 身份证正则表达式|电话号码、邮箱正则表达式
    //身份证正则表达式(15位)isIDCard1=/1\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}KaTeXparseerror:Undefinedcontrolsequence:\datposition37:…IDCard2=/^[1-9]\̲d̲{5}[1-9]\d{3}((…/;身份证正则合并:(^\d{15}KaTeXparseerror:Undefinedcontrolsequence:......
  • 密码正则表达式大全
    1种只能由1种组成只能由字母组成,1-9位^[a-zA-Z]{1,9}$只能由数字组成,1-9位^\d{1,9}$只能由特殊字符组成,1-9位^[^\da-zA-Z\s]{1,9}$至少包含1种至少包含字母,1-9位^(?=.*[a-zA-Z]).{1,9}$至少包含数字,1-9位^(?=.*\d).{1,9}$至少包含特殊字符,1-9位^(?=.*[^\da-zA-Z\s])......
  • vue常用正则表达式判断身份证格式
    判断身份证格式 /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/写成一个校验类,以后直接使用functionisIdCard(idCard){letreg=/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|3......
  • python 使用re模块,配合正则表达式来查找字符串的想要的字符串
    一,首先:我们现了解一下python中正则表达式的基本规则有那些?1,字符串"\d"匹配0~9之间的一个数值eg:'dsas212b321321'使用r'\d'结果:(它会一次匹配一个数字依次查找)212321321  2,字符"+"重复前面一个匹配字符一次或者多次eg:'dsas212b321321'方式1:使用r'\d+'结果:(......
  • shell 正则表达式
    限定符a*出现0次或者多次a+出现1次或者多次a?出现0次或者1次a{3}出现3次a{2,4}出现2~4次a{3,}出现3次或者多次或运算符(a|b)匹配a或者b(ab)|(cd)匹配ab或者cd字符类[abc]匹配a或者b或者c[a-c]同上[a-fA-F0-9]匹配小写+大写英文字符以及数字[^0-9]匹配......
  • 正则表达式:贪婪与非贪婪模式
    正则中的三种模式,贪婪匹配、非贪婪匹配和独占模式。在这6种元字符中,我们可以用{m,n}来表示(*)(+)(?)这3种元字符:贪婪模式,简单说就是尽可能进行最长匹配。非贪婪模式呢,则会尽可能进行最短匹配。正是这两种模式产生了不同的匹配结果。贪婪匹配(Greedy)在正则中,表示次数的量词默认是贪......
  • python 小案例正则表达式
    正则表达式是一种用于匹配、查找和替换文本的强大工具。在提取网页中的目标数据时,可以使用正则表达式来搜索和匹配特定模式的文本。以下是一个使用正则表达式提取网页中的目标数据的示例代码:importre#网页源代码html="""<divclass="title">正则表达式教程</div><divc......
  • 正则表达式 过滤文本
    5.正则表达式过滤文本REGEXP:RegularExpressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。正则表达式被很多......