博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则匹配过程的猜测
阅读量:6044 次
发布时间:2019-06-20

本文共 692 字,大约阅读时间需要 2 分钟。

图片描述

源串: a"

正则: /"*$/gm

过程:

第一轮1, 表达式中的 " 匹配字符串的 a     A: 由于是贪婪模式, 在此处记录一个可回溯状态     B: " 与 a 匹配失败    C: 检查是否需要回溯, 发现之前的可回溯状态    D: 回溯. 退回到 a 前面的位置2, 用空位置匹配 a 之前的位置, 成功, 已经没有可回溯条件3, 用 $ 匹配 ", 失败4, 第一轮匹配失败, 字符串左移一个字符,开始下一轮尝试第二轮1, 表达式中的 " 匹配字符串中 " ,     A: 由于是贪婪模式, 在此处记录一个可回溯状态     B: " 与 " 匹配成功2, 由于是贪婪模式,  尝试用 " 继续向前匹配, 并记录一个可回溯状态     A: " 遇到 $, 匹配失败    B: 检查是否需要回溯, 发现前面有记录的可回溯状态, 回溯    C: 退回到字符串 " 之后的位置3, 表达式中的 $ 匹配 字符串中的 $, 匹配成功. 4, 整个表达式匹配成功. ?执行替换操作? 由于配置了 g 标志, 第一次匹配后, 表达式会继续向下匹配, 字符串左移一个字符, 进入第三轮的匹配第三轮1, 表达式中的 " 匹配字符串中的 $    A: 由于是贪婪模式, 在此处记录一个可回溯状态     B: " 与 $ 匹配失败    C: 检查是否需要回溯, 发现前面有记录的可回溯状态, 退回到上一个位置 2, 空位置匹配字符串 $ 之前的位置, 匹配成功3, 表达式中的 $ 匹配字符串中的 $ , 匹配成功 4, 本轮匹配成功 ?执行替换操作?整个匹配替换结束

转载地址:http://kcfex.baihongyu.com/

你可能感兴趣的文章
oracle基于COMMIT SCN的物化视图日志如何支持快速刷新(二)
查看>>
Oracle技术之本地管理表空间_字典管理表空间_ASSM特点
查看>>
[C++] const与重载
查看>>
我的友情链接
查看>>
js实现前端下载文件
查看>>
我的友情链接
查看>>
利用两种VB.NET串联运算符方法讲解
查看>>
免费图片外链空间推荐
查看>>
双层nginx代理获取真实访问ip
查看>>
IOS 学习笔记
查看>>
OC学好C语言必备知识点
查看>>
[DB]sql server 中设置主键自增长
查看>>
对联广告
查看>>
网站运维常用小技巧,排错必备
查看>>
Spring4-<util:set>的使用
查看>>
CentOS安装JDK
查看>>
XenServer VM虚拟机操作非常慢的问题总结
查看>>
字符串颜色值转换
查看>>
SSH tunnel 隧道技术
查看>>
AsyncTask的理解
查看>>