美文网首页
探索正则之域——正则表达式

探索正则之域——正则表达式

作者: 星晴98 | 来源:发表于2020-03-08 09:49 被阅读0次

获取匹配 (pattern)

符合括号中pattern所匹配的内容,将会被获取

const str = 'hello_world'
const p = /hello_(.*)/
const result = str.match(p)

result的结果是:

["hello_world", "world", index: 0, input: "hello_world", groups: undefined]

result的第一个项,是匹配的结果。
result的第二个项,是获取的结果。获取的结果是正则表达式中用括号括起来的部分在匹配结果中实际对应的值。在本例中,就是world。

非获取匹配 (?:pattern)

在看例子之前,我们先来思考一下,“非获取匹配”和“获取匹配”,他们之间可能会有什么样的差别。
好的,我们接下来看一看例子。

const str = 'hello_world';
const p = /(?:hello)_world/
const result = str.match(p);

result的结果是:

["hello_world", index: 0, input: "hello_world", groups: undefined]

虽然正则表达式也有括号,但这次括号中还包含了特殊的内容“?:”。
所以这不是之前将的获取匹配对不对?
那么这叫什么呢?是的,就是非获取匹配。获取匹配的括号中再加个“?:”就变成了非获取匹配,神奇神奇。
好了,那我们一起来理解一下结果——result数组。
第一项,是匹配结果。str中和p匹配的结果就是hello_world。
第二项,是获取结果。咦?为什么是index?这里为什么不是一个字符呢?捕获结果哪里去了呢? 我们要注意了哈,这里没有获取。这个正则表达式用的是非捕获匹配呢。

(?=pattern) 正向肯定预查。

在任何匹配pattern字符串开始处,开始匹配查找字符。
该匹配是一个非获取匹配。

(?!pattern) 正向否定预查

正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配。

(?<=pattern) 负向肯定预查

(?<!pattern) 负向否定预查

相关文章

  • 探索正则之域——正则表达式

    获取匹配 (pattern) 符合括号中pattern所匹配的内容,将会被获取。 result的结果是: resu...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 知识分享之正则表达式——常用的正则表达式汇总

    知识分享之正则表达式——常用的正则表达式汇总 背景 知识分享之正则表达式是对其日常在使用正则表达式过程中遇到的各类...

  • 正则

    1 JS之正则表达式15个常用的javaScript正则表达式

  • JS正则表达式的骚操作

    参考资料 《JS正则表达式的分组匹配》《正则表达式之捕获组/非捕获组介绍》《正则表达式中(?:pattern)、(...

  • 20.Python之正则表达式

    Python之正则表达式 正则表达式什么是正则表达式?正则表达是一套匹配字符串的通用规则,很多开发语言中都有。为什...

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

网友评论

      本文标题:探索正则之域——正则表达式

      本文链接:https://www.haomeiwen.com/subject/prnrdhtx.html