You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式匹配分隔符子串:末尾内容缺失及模式优化咨询

问题解答

为何分组3为空?

你的正则模式中分组3使用了.*?非贪婪匹配,它的特性是尽可能少地匹配字符。当正则成功匹配到_s_.*?_e_这个块之后,.*?会优先匹配空字符串(因为空已经满足匹配条件),所以分组3始终为空。

如何获取结束分隔符后的文本?

末尾的wwwddd未被匹配,是因为你的正则要求必须匹配到_s_.*?_e_块才会触发匹配,而最后一段文本没有对应的分隔符块,因此被遗漏。

更新后的正则模式

可以使用以下两种方案:

方案1:捕获所有片段(包括最后无分隔符的部分)

使用全局匹配的正则,同时处理带分隔符的块和末尾的剩余文本:

/(.*?)(_s_.*?_e_)|(.*)/g

匹配结果会包含:

  • 前三次匹配对应每个_s_..._e_块及其前面的文本
  • 第四次匹配捕获末尾的wwwddd

方案2:精准捕获每个块的前后文本

如果希望一次匹配就能获取当前分隔符块的前、中、后内容(后内容指到下一个_s_或文本结尾),可以使用:

/(.*?)(_s_.*?_e_)(.*?(?=(?:_s_|$)))/g

这个正则利用正向预查(?=(?:_s_|$))确保分组3只捕获到下一个_s_之前的内容,或者到文本结尾的内容,匹配结果如下:

0: aaa_s_123abc_e_bbbccc
1: aaa
2: _s_123abc_e_
3: bbbccc
------------------
0: bbbccc_s_456def_e_bbbddd
1: bbbccc
2: _s_456def_e_
3: bbbddd
------------------
0: bbbddd_s_7890_e_wwwddd
1: bbbddd
2: _s_7890_e_
3: wwwddd

内容的提问来源于stack exchange,提问作者Tim K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 05:17:07