首页 > 其他分享 >正则表达式中的预搜索

正则表达式中的预搜索

时间:2022-11-17 11:56:14浏览次数:41  
标签:字符 匹配 数字 正则表达式 搜索 格式

格式:

  1.正向预搜索,右侧是或者不是什么:"(?=xxxxx)","(?!xxxxx)";

  2.反向预搜索,左侧是或者不是什么:"(?<=xxxxx)","(?<!xxxxx)"

注意:

  1.括号是必须的且不参与反向引用中个数的计算;例如 正则表达式 (?=12)(\d{2})\1 在匹配字符‘12123’的时候,匹配成功,返回字符"1212"

  2.预搜索内只是限制条件,本身不匹配任意字符;例如 正则表达式 (?=1234)\d{1} 在匹配字符'123456'的时候,匹配成功,返回字符‘1’,而不是‘12345’

例子:

  待验证字符:a1aa fbffff 989999999

  正则表达式:(\w)((?=\d\1\1)(\d))+

  匹配流程:

    \w => 先找出字符a,即\1

    (?=\d\1\1) => 再判断第一个a之后的字符是否为\daa格式,很显然是的,即‘1aa’;

    (\d),预搜索是不匹配字符的,所以\d匹配到的是1

    所以得到第一个结果 a1

 

    \w => 先找出字符f,即\1

    (?=\d\1\1) => 再判断第一个f之后的字符是否为\daa格式,很显然‘faa’不满足;如果把第三个f改为任意数字,则会匹配到(f1ff)

    

    \w => 先找出字符9,即\1

    (?=\d\1\1) => 再判断第一个9之后的字符是否为\daa格式,很显然是的,即‘899’;

    (\d),预搜索是不匹配字符的,所以\d匹配到的是8

    所以得到第一个结果 98

    因为 ((?=\d\1\1)(\d))+ 格式;可以继续向后找;

      从第三个数字9向后查找,得到第三至第五个数字 9(\w)9(\1)9(\1)复合要求,获取到第三个数字9

      从第四个数字9向后查找,得到第四至第六个数字 9(\w)9(\1)9(\1)复合要求,获取到第四个数字9

      ...

      从第七个数字9向后查找,得到第七至第九个数字 9(\w)9(\1)9(\1)复合要求,获取到第七个数字9

      从第八个数字9向后查找,此时只剩下2个九不满足匹配条件

    最终结果为:9899999;最后的两个九是无法匹配到的

最最终结果为:[["a1","9899999"],["a","9"],["1","9"],["1","9"]]

标签:字符,匹配,数字,正则表达式,搜索,格式
From: https://www.cnblogs.com/ryuma/p/16898996.html

相关文章

  • 力扣 235. 二叉搜索树的最近公共祖先
    235.二叉搜索树的最近公共祖先给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近......
  • 二分搜索算法
    目录介绍基本的二分搜索思路代码实现:查找左边界的二分搜索思路代码实现:查找右边界的二分搜索思路代码实现:介绍二分查找适用于已经排序的序列,通过对搜索区间折半的方式查......
  • 18.正则表达式
    search方法输出的是a开始的位置6replace方法正则表达式是单独的技术,每个语言都有不同......
  • ACM预备队week4(搜索)
    1.迷宫题目链接:P1605迷宫-洛谷|计算机科学教育新生态(luogu.com.cn)dfs1#include<bits/stdc++.h>2usingnamespacestd;3intsx,sy,fx,fy;4intn,m,......
  • C++ 不知图系列之基于链接表的无向图最短路径搜索
    1.前言图的常用存储方式有2种:邻接炬阵。链接表。邻接炬阵的优点和缺点都很明显。优点是简单、易理解,但是对于大部分图结构而言,都是稀疏的,使用矩阵存储,空间浪费......
  • 网易严选搜索推荐实践之:“全能选手”召回表征算法实践
    今天给大家带来网易严选人工智能部算法专家潘胜一先生所做的分享《网易严选搜索推荐实践之:“全能选手”召回表征算法实践.pdf》。潘先生所在的团队主要负责搜索推荐,搜索推荐......
  • 网易严选搜索推荐实践之:“全能选手”召回表征算法实践.pdf(附下载链接)...
    今天给大家带来网易严选人工智能部算法专家潘胜一先生所做的分享《网易严选搜索推荐实践之:“全能选手”召回表征算法实践.pdf》。潘先生所在的团队主要负责搜索推荐,搜索推荐......
  • 每日算法之二叉搜索树的最近公共祖先
    JZ68二叉搜索树的最近公共祖先描述给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。1.对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q,最近公共祖......
  • 最优二叉搜索树
    二叉搜索树是一棵空树或者满足以下的性质:每个结点作为搜索对象,它的关键字是互不相同的。对于树上的所有结点,如果它有左子树,那么左子树上所有结点的关键字都小于该结点的......
  • 分布式搜索引擎01-- elasticsearch基础
    分布式搜索引擎01--elasticsearch基础0.学习目标1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强......