建设电影网站的教程盐亭做网站
2026/3/2 5:55:14 网站建设 项目流程
建设电影网站的教程,盐亭做网站,主题字体怎么设置 wordpress,网站建设费一般是什么费用正则表达式是强大的文本处理工具。从字符类到量词#xff0c;再到分组与选择#xff0c;本篇文章将带你深入了解正则表达式的基础语法和在实际场景中的广泛应用。无论你是初学者还是需要快速复习#xff0c;本篇都将为你提供详尽而易于理解的指引。一、正则表达式属性(修饰符…正则表达式是强大的文本处理工具。从字符类到量词再到分组与选择本篇文章将带你深入了解正则表达式的基础语法和在实际场景中的广泛应用。无论你是初学者还是需要快速复习本篇都将为你提供详尽而易于理解的指引。一、正则表达式属性(修饰符)修饰符用于执行不区分大小写和全局的搜索1.【i】不区分大小写varreg1/abc/varreg2/abc/ivarstr1ABCconsole.log(reg1.test(str1))//falseconsole.log(reg2.test(str1))//true2.【g】全局匹配varreg3/aa/varreg4/aa/gvarstr2aabaaaabconsole.log(str2.match(reg3))//[aa]console.log(str2.match(reg4))//[aa,aa,aa]3.【m】执行多行匹配varreg5/^ab/gvarreg6/^ab/gmvarstr3abcd\nabcconsole.log(str3.match(reg5))//[ab]console.log(str3.match(reg6))//[ab,ab]二、正则表达式模式用于查找某个范围内的字符1.【[]】查找方括号之间的任何字符,一个方括号中写的是一个字符的取值范围0-9表示所有数字;a-z表示所有小写字母;A-Z表示所有大写字母;A-z表示所有大小写字母在[]中使用表示非的意思,例如/[0-9]/也就是匹配非数字类型的内容// 例如下面要获取三个数字的字符串varreg7/[0-9][0-9][0-9]/gvarreg8/[^0-9][^0-9][^0-9]/gvarstr4121231ko23puu123console.log(str4.match(reg7))//[121,231,123]console.log(str4.match(reg8))//[puu]2.【()】在括号中写入|表示或,也就是只要满足|前或者|后任意一个表达式即可varreg9/(abc|bcd)/gvarstr5abcabbcdconsole.log(str5.match(reg9))//[abc, bcd]三、正则表达式的元字符是拥有特殊含义的字符,其实和表达式是一个东西1.【\w】和【\W】w意思是word\w完全等于[A-z0-9]W是非w完全等于[^\w]varreg10/\w\W/gvarstr5a;0,opconsole.log(str5.match(reg10))//[a;, 0,]2.【\d】和【\D】d代表0-9的数字,等同于[0-9]D是非d,完全等于[^/d]和[^0-9]varreg11/\d\D\D/gvarstr61jj2lo990olconsole.log(str6.match(reg11))//[1jj, 2lo, 0ol]3.【\s】和【\S】s代表空白字符,即空格和\t\n\r\v\f,等同于[\t\n\r\v\f ]S是非s,完全等于[/s]和[\t\n\r\v\f])在正则表达式中写空格就代表空格varreg12/\s/gvarstr7\n123\f123 1console.log(str7.match(reg12))//[\n, \f, ]4.【\b】和【\B】b代表单词边界B是非b,表示非单词边界,完全等于[^/b]单词边界在字符串里面可以看成空格varreg12/\b/gvarstr81231231varstr91231231 123kkvarstr101231231 123kk console.log(str8.match(reg12))//[, ]console.log(str9.match(reg12))//[, , , ]console.log(str10.match(reg12))//[, , , ]varreg13/\bc/gvarstr11cth cujccconsole.log(str11.match(reg13))//[c, c]5.【\t】、【\n】、【\r】、【\b】、【\f】/t:制表符\n:换行符\r:回车符\v:垂直换行符\f:换页符varreg14/ac\ts/gvarstr12ac\tsdfvarstr13ac sdf//这里的空是用tab符打出来的,但是系统是不能识别的,这几个都是如此console.log(str12.match(reg14))//[ac\ts]console.log(str13.match(reg14))//null6.【\udddd】这是四位的unicode编码(包含了汉字),且unciode也可以写成区间/[\u3000-\ua000]/varreg15/\u4f60\u597d///这里是去找的你好的unicode编码,直接百度找在线转换即可varstr14你好//console.log(str14.match(reg15))//[你好]7.【.】查找单个字符,除了换行和行结束符,也就是/.[^\r\n]varreg16/./gvarstr15你 很\n\t帅console.log(str15.match(reg16))//[你, , 很, \t, 帅]四、正则表达式的量词(代表数量的词)1.【n】匹配任何包含至少一个n的字符串。这个变量可以出现1到无数次varreg17/\w/gvarstr16abcvarstr17abc\ndbconsole.log(str16.match(reg17))//[abc]console.log(str17.match(reg17))//[abc, db]2.【n*】匹配任何包含零个或多个n的字符串。这个变量可以出现0到无数次varreg18/\w*/gvarreg19/\d*/gvarstr18abcvarstr19abcdbconsole.log(str18.match(reg18))//[abc, ]console.log(str19.match(reg18))//[abcdb, ] 光标在b后面,b后面有逻辑上的距离,*如果是零,匹配的是空,\w会先把能是被的值先识别,到最后识别不了了,才试一下*零,匹配空console.log(str19.match(reg19))//[, , , , , ] 光标在a前面,逻辑上有个距离,匹配了一个零,空串,然后光标移动到a后面,逻辑上又有距离,有宜配了一个零,空串,所以有多少个光标定位点就有多少个空串3.【n?】匹配任何包含零个或一个n的字符串。varreg20/\w?/gvarstr20aaaaaaaaaaconsole.log(str20.match(reg20))//[a, a, a, a, a, a, a, a, a, a, ]4.【n{X}】匹配包含X个n的序列的字符串。varreg21/\w{3}/gvarstr21aaaaaaaaaaconsole.log(str21.match(reg21))//[aaa, aaa, aaa]5.【n{X,Y}】匹配包含X至Y个n的序列的字符串。varreg22/\w{3,5}/gvarstr22aaaaaaaaaaaconsole.log(str22.match(reg22))//[aaaaa, aaaaa]6.【n{X,}】匹配包含至少X个n的序列的字符串。varreg23/\w{3,}/gvarstr23aaaaaaaaaaaconsole.log(str23.match(reg23))//[aaaaaaaaaaa]7.【n$】匹配任何以n结尾的字符串。varreg24/[0-9]b$/gvarstr240b9o34hb9bconsole.log(str24.match(reg24))//[9b]// ^n 匹配任何以n开头的字符串。varreg24/^[0-9]/gvarstr2400934hconsole.log(str24.match(reg24))//[0]8.【?n】匹配任何其后紧接指定字符串n的字符串。正向预查varreg25/a(?b)/gvarstr25abaabaaaaconsole.log(str25.match(reg25))//[a, a]9.【?!n】匹配任何其后没有紧接指定字符串n的字符串。正向断言varreg26/a(?!b)/gvarstr26abaabaaaaconsole.log(str26.match(reg26))//[a, a, a, a, a]五、正则表达式的对象属性1.【constructor】返回创建 RegExp 对象原型的函数。varreg27/[0-9]/console.log(reg27.constructor)//RegExp()2.【global】检查是否设置了 “g” 修饰符。varreg28/[0-9]/gconsole.log(reg28.global)//true3.【ignoreCase】检查是否设置了 “i” 修饰符。varreg29/[0-9]/iconsole.log(reg29.ignoreCase)//true4.【lastIndex】规定开始下一个匹配的索引。varreg30/[0-9]/iconsole.log(reg30.lastIndex)//0.没匹配到返回05.【multiline】检查是否设置了 “m” 修饰符。varreg31/[0-9]/mconsole.log(reg31.multiline)//true6.【source】返回 RegExp 模式的文本。varreg32/[0-9]/iconsole.log(reg32.source)//[0-9]六、正则表达式的对象方法1.【exec()】测试字符串中的匹配项。会返回找到的值,并确定其位置①从前往后找,先返回第一个找到的值,并返回其位置,第二次会返回第二个找到的值,依次类推,直到没有会返回null,再下一次就开始循环前面的步骤②可以通过修改lastIndex来修改当前的位置,会从这个位置开始往下找,从而影响exec获取到的值是第几个③如果不加g,lastIndex就不会动,永远返回的是第一个varreg33/ab/gvarstr27abababaconsole.log(reg33.exec(str27))//[0:ab,index:0]console.log(reg33.exec(str27))//[0:ab,index:2]console.log(reg33.exec(str27))//[0:ab,index:4]console.log(reg33.exec(str27))//nullconsole.log(reg33.exec(str27))//[0:ab,index:0]reg33.lastIndex4console.log(reg33.exec(str27))//[0:ab,index:4]reg33.lastIndex3console.log(reg33.exec(str27))//[0:ab,index:4]2.【test()】测试字符串中的匹配项。返回 true 或 false。varreg34/ab/varstr28abababaconsole.log(reg34.test(str28))//true// toString():返回正则表达式的字符串值。varreg35/ab/giconsole.log(reg35.toString())///ab/gi七、正则表达式的拓展【()】这个括号还有一个子表达式的意思,正常来说括号写了没有用,也没影响,但是再特殊情况,当你把式子当特殊括起来以后,这个括号会记录里面匹配的内容,记录完以后利用\几可以反向引用出来varreg36/(\w)\1\1\1/gvarstr29aaaabbbbconsole.log(str29.match(reg36))//[aaaa,bbbb]varreg37/(\w)\1(\w)\2/gvarstr30aabbccddconsole.log(str30.match(reg37))//[aabb, ccdd]console.log(reg37.exec(str30))//[0:aabb,1:a,2:b,...] 使用exec会返回子表达式的内容,并且是正式的数据位,有下标的varreg38/(\w)\1(\w)\2/varstr31aabbccddconsole.log(str31.match(reg38))//[0:aabb,1:a,2:b,...] 不用g匹配时,match也会返回子表达式的内容,并且是正式的数据位,有下标的八、支持正则表达式的 String 对象的方法1.【search】检索与正则表达式相匹配的值。返回的不是-1则表示成功了,返回的时匹配的这个值所在的位置varreg39/(\w)\1(\w)\2/gvarstr32aabboojjvarstr33caabboojjvarstr34caabojconsole.log(str32.search(reg39))//0console.log(str33.search(reg39))//1console.log(str34.search(reg39))//-12.【split】把字符串分割为字符串数组。varreg40/\d/g//使用数字分割varstr35aa8bb7cc9ddconsole.log(str35.split(reg40))//[aa, bb, cc, dd]varreg41/(\d)/g//使用数字分割varstr36aa8bb8cc9ddconsole.log(str36.split(reg41))//[aa, 8, bb, 8, cc, 9, dd] 如果使用了()子表达式,就会把子表达式的东西返回3.【match】找到一个或多个正则表达式的匹配。varreg42/^[0-9]/gvarstr3700934hconsole.log(str37.match(reg42))//[0]4.【replace】替换与正则表达式匹配的子串。varreg43/(\w)\1(\w)\2/g//将aabb形式的内容换成bbaavarstr38aabbconsole.log(str38.replace(reg43,$2$2$1$1))//bbaa. $1和$2分别代表第一个和第二个子表达式的内容,console.log(str38.replace(reg43,function($,$1,$2){return$2$2$1$1}))//bbaa. 也可以用函数,第一个参数是正则表达式匹配的全局,第二和第三个参数则是第一个和第二个子表达式的内容九、补充1.贪婪模式正则表达式默认是贪婪匹配的,就是能匹配到的长度是越多越好的,可以通过在量词后面几个?将其变成非贪婪模式(能少就不多)varreg44/a/gvarreg45/a?/gvarstr39aaaaconsole.log(str39.match(reg44))//[aaaa]console.log(str39.match(reg45))//[a, a, a, a]//①??第一个问号是0-1的意思,加个问号就是能取0不取1.相当于第一个问好代表量词,第二个问号叫取消他的匹配varreg46/a??/gvarstr40aaaaconsole.log(str40.match(reg46))//[, , , , ]//②*?的意思是能取0就不多取varreg47/a*?/gvarstr41aaaaconsole.log(str41.match(reg47))//[, , , , ]2.获取一切的集合用正则代表一切的集合可以使用好几种方式,例如/[\s\S]/ /[\d\D]/都可以

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询