炫意html5
最早CSS3和HTML5移动技术网站之一

正则表达式前瞻后顾,负前瞻,负后顾(?=,?:和?!)理解和应用

前言

前面文章讲解了一些正则表达式的文章,今天讲讲?=,?:和?!这几个符号的作用吧~

这几个符号用的不多,主要解释如下:

前瞻:

炫H5(?=hrms) 查找hrms前面的炫H5,表示我们需要匹配hrms的前面

后顾:

(?<=hrms)炫H5 查找hrms后面的炫H5

负前瞻:

炫H5(?!hrms) 查找后面不是hrms的炫H5,

负后顾:

(?<!=hrms)炫H5 查找前面不是hrms的炫H5

例子

console.log("我是中国人".replace(/我是(?=中国)/, "炫H5")) // 输出: '炫H5中国人',匹配的是中国前面的'我是'
console.log("我是中国人".replace(/(?!中国)/, "炫H5")) // 输出:'炫H5我是中国人'
console.log("我是中国人".replace(/(?:中国)/, "炫H5")) // 输出:'我是炫H5人',匹配'中国'本身
console.log("我是中国人".replace(/(?<=中国)人/, "炫H5")) // 输出:'我是中国炫H5',匹配的是中国后面的'人'
console.log("我是中国人".replace(/(?<!中国)/, "炫H5")) // 输出:'炫H5我是中国人'

例子二

匹配下面的href地址

< br/>您好,欢迎来到炫H5博客
< br/><a target=_blank href="https://www.xyhtml5.com/post/regex_qzhgfqzfhg/www.xyhtml5.com">前端博客</a>前端
< br/><a target=_blank href="https://www.xyhtml5.com/post/regex_qzhgfqzfhg/resource.xyhtml5.com">前端资源库</ a>炫H5
< br/>

方法1: 匹配,捕获(存储)

正则表达式:

(?<=(href="https://www.xyhtml5.com/post/regex_qzhgfqzfhg/)).{1,200}(?=(">))

解释:(?<=(href=”https://www.xyhtml5.com/post/regex_qzhgfqzfhg/)) %E8%A1%A8%E7%A4%BA %E5%8C%B9%E9%85%8D%E4%BB%A5(href=”)开头的字符串,并且捕获(存储)到分组中
(?=(“>)) 表示 匹配以(“>)结尾的字符串,并且捕获(存储)到分组中

方法2: 匹配,不捕获(不存储)

正则表达式:

(?<=(?:href="https://www.xyhtml5.com/post/regex_qzhgfqzfhg/)).{1,200}(?=(?:">))

解释:(?<=(?:href=”https://www.xyhtml5.com/post/regex_qzhgfqzfhg/)) %E8%A1%A8%E7%A4%BA %E5%8C%B9%E9%85%8D%E4%BB%A5(href=”)开头的字符串,并且不捕获(不存储)到分组中
(?=(?:”>)) 表示 匹配以(“>)结尾的字符串,并且不捕获(不存储)到分组中

应用

数字格式化

console.log("1234567890".replace(/\B(?=(?:\d{3})+(?!\d))/g,","))
// 输出:'1,234,567,890'

炫意HTML5 » 正则表达式前瞻后顾,负前瞻,负后顾(?=,?:和?!)理解和应用

Java基础教程Android基础教程