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

如何编写正则表达式提取下划线分隔字符串的三个分组内容

下划线分隔三段字符串的正则提取方案

待处理字符串为单行文本,固定以_作为分隔符拆分为3段,格式为xxxxxx_yyyyyyy_zzzzzz,需要分别提取三段随机内容。

你当前使用的正则^[^_]*仅能匹配第一段的原因很简单:该规则从字符串起始位置开始匹配,命中第一个_时就会终止匹配,自然无法覆盖后续两段内容。

一次性提取全部三段(推荐写法)

使用带捕获组的正则单次匹配即可拿到全部三段内容,规则如下:

^([^_]+)_([^_]+)_([^_]+)$

各捕获组对应匹配内容:

  • 第1组:匹配起始位置到第一个_之间的内容,即第一段x段
  • 第2组:匹配两个_中间的内容,即第二段y段
  • 第3组:匹配第二个_到字符串末尾的内容,即第三段z段

如果允许某一段内容为空,把规则里的+替换为*即可,对应写法为^([^_]*)_([^_]*)_([^_]*)$

单独匹配某一段的正则写法

如果需要为每一段单独写匹配规则,可以直接用以下对应写法:

  • 匹配第一段:^[^_]+(即你当前正在使用的写法)
  • 匹配第二段:(?<=_)[^_]+(?=_),通过前后断言锁定夹在两个_中间的内容
  • 匹配第三段:[^_]+$,从字符串末尾反向匹配到第一个_前的内容

匹配示例

以测试字符串user_001_profile为例:

全量匹配捕获结果:
第一段:user
第二段:001
第三段:profile
单段正则分别匹配的结果和上述结果完全一致。

内容的提问来源于stack exchange,提问作者Kans0c1ty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:48:37