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

如何用正则表达式提取两个下划线之前的合法大写/数字文本

正则表达式提取符合规则的文本解决方案

最终正则表达式

_+([A-Z0-9](?:_[A-Z0-9]|[A-Z0-9])*)(?=__|\s|$)

正则说明

  • _+:匹配一个或多个前置下划线,覆盖示例中单个或多个下划线开头的情况
  • ([A-Z0-9](?:_[A-Z0-9]|[A-Z0-9])*):核心捕获组,确保:
    • 以大写字母或数字开头
    • 后续只能是大写字母/数字,或者单个下划线加大写字母/数字,从根源避免连续下划线
    • 可匹配任意长度的合法序列
  • (?=__|\s|$):正向预查,指定捕获终止的触发条件——遇到连续下划线、空格或字符串结尾时停止捕获

示例验证

将正则应用到你的示例中,结果完全符合预期:

  1. test_TEST_TEST_1_TEST_13DAHA bfd → 捕获 TEST_TEST_1_TEST_13DAHA
  2. test_TEST_TEST_1_TEST__13DAHA bfd → 捕获 TEST_TEST_1_TEST
  3. test__TEST_TEST → 捕获 TEST_TEST
  4. test_TEST__DHJF → 捕获 TEST
  5. test_TEST__Ddsa → 捕获 TEST
  6. test__TEST → 捕获 TEST

补充说明

如果你的场景中,合法文本可能出现在字符串开头(无前置下划线),可以调整正则为:

(?:^|_+)([A-Z0-9](?:_[A-Z0-9]|[A-Z0-9])*)(?=__|\s|$)

这样可以匹配字符串开头的合法序列,同时保留原有场景的适配性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:40:28