云鹊BLOG云鹊BLOG云鹊BLOG
  • 首页

云鹊BLOG云鹊BLOG云鹊BLOG

当前位置:首页关于 正则表达式 的文章
JavaScript matchAll 的游标副本:遍历已到末尾,原正则的位置为什么没动

最新JavaScript matchAll 的游标副本:遍历已到末尾,原正则的位置为什么没动

把exec循环换成matchAll以后,匹配结果已经读到最后,原正则的lastIndex却仍停在一。接着重新调用,又从同一个非零位置开始。这种行为来自matchAll为普通正则创建匹配副本:它保留创建时的起点,遍历推...

yunqueblogyunqueblog/ 技术教程/ 2026-10-04/ 3 阅读
Python 正则原子组:普通分组能匹配 integer,换成原子组后为什么失败

Python 正则原子组:普通分组能匹配 integer,换成原子组后为什么失败

词法检查器要识别in和integer两个关键字,普通分组能接受integer。为了减少回溯,把分组改为原子组,原本合法的输入却失败了。原子组并不是普通分组的无损加速开关:一旦成功离开它,组内曾经留下的其它选择就不能在...

yunqueblogyunqueblog/ 技术教程/ 2026-10-03/ 2 阅读
JavaScript RegExp.escape:输入只是一个文件名,句点为什么变成了匹配规则

JavaScript RegExp.escape:输入只是一个文件名,句点为什么变成了匹配规则

给一组名称增加搜索框时,直接写 new RegExp(query) 看起来很方便。输入 a.b 后,axb 和 a-b 也可能被选中,因为句点已经作为正则语法参与匹配。若用户输入的是要查找的文字,应在构造模式以前明确...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Python re.findall 捕获组:只加了一对括号,结果为什么从整段变成编号

Python re.findall 捕获组:只加了一对括号,结果为什么从整段变成编号

脚本从文本里提取零件编号,原来返回 A-12、B-34。后来为了方便给字母部分加上分组,输出突然只剩 A、B;再加一组数字,结果又变成元组。匹配位置可能完全没变,改变的是 findall 根据捕获组数量决定的返回结构...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Bash BASH_REMATCH:辅助函数匹配一次,外层捕获结果为什么被换掉

Bash BASH_REMATCH:辅助函数匹配一次,外层捕获结果为什么被换掉

解析任务名称时,外层正则已经拿到了类型和编号,接着调用一个辅助函数检查编号是否全是数字,再读取捕获数组却发现类型不见了。问题可能发生在检查函数里:它执行了另一次正则匹配,把同一个 BASH_REMATCH 数组改成了...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Unicode 片假名校验:长音符明明在词里,Script 为什么不认它

Unicode 片假名校验:长音符明明在词里,Script 为什么不认它

看起来属于一个词,不等于只有一种脚本属性给片假名输入框写正则时,很容易使用 Script=Katakana,再用加号要求一个或多个字符。单独测试“コ”能通过,换成“コーヒー”却失败。问题出在中间的长音符“ー”,也就是...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Python 正则搜索起点:pos 已经移到中间,为什么 ^ 仍不匹配那里

Python 正则搜索起点:pos 已经移到中间,为什么 ^ 仍不匹配那里

从日志中找到正文起点后,把这个位置传给编译后正则的 search,以为表达式里的 ^ 就会把那里当开头。结果普通文字能找到,加了行首锚点却返回 None。pos 限制从哪里开始尝试匹配,没有把原字符串切成一段新字符串...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
JavaScript 后行断言:同样的贪婪分组,为什么在左边少拿了一个字符

JavaScript 后行断言:同样的贪婪分组,为什么在左边少拿了一个字符

把两个捕获组移进后行断言,表达式仍然匹配成功,但第一个组从 ab 变成 a,第二个组从 c 变成 bc。不是贪婪规则失效了,而是断言从当前位置向左检查,右侧的组先获得匹配机会。判断分组结果时,必须把方向一起带进推演。...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Python 重叠文本匹配:用零宽前瞻找出 ABABA 里的两个 ABA

Python 重叠文本匹配:用零宽前瞻找出 ABABA 里的两个 ABA

需要数出现位置,而不是切出互不重叠的片段在 ABABA 中,ABA 可以从位置零开始,也可以从位置二开始,两次出现共用了中间的 A。直接使用 re.finditer("ABA", text) 却只返回一次。这并非正则...

yunqueblogyunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
JavaScript 正则匹配区间:相同文字出现两次,怎样标中真正捕获的那一段

JavaScript 正则匹配区间:相同文字出现两次,怎样标中真正捕获的那一段

解析日志后要高亮一个数字,代码先拿到捕获文本,再调用 indexOf 搜索它的位置。如果同一行里相同数字出现两次,就可能标错第一处。正则实际上已经知道自己匹配了哪一段,启用 d 标志便能把这份位置一并取回。匹配区间以...

yunqueblogyunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
  • 1
  • 2
  • 下一页
  • 末页
  • 共 2 页
点击查看更多
Copyright2020后台修改文字. 基于Z-BlogPHP搭建