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

求助:正则表达式如何正确提取<*n(n为数字)等指定模式

解决正则匹配问题的方案

直接上能满足你所有要求的正则:

(<\*\d+)|(<(?!\*\d))

规则拆解

  • 第一部分 (<\*\d+):专门匹配<*后面跟一串数字的完整组合,比如<*15、<*8这类,会把<*加所有数字一次性捕获出来。
  • 第二部分 (<(?!\*\d)):只捕获单独的<,通过负向预查(?!\*\d)做过滤:
    • 当<后面不是*(比如<6),直接捕获<
    • 当<后面是*但无数字(比如<*abc),也仅捕获<

测试验证

用这个正则匹配你提供的字符串 "abcd<*15<<defgj<*3fsdfsdf",会得到精准结果:

  • <*15
  • <
  • <
  • <*3

你之前的正则失效原因

你写的\<\*?[0-9+]?和\<\*?[\d+]?存在两个关键问题:

  1. [0-9+]和[\d+]是字符类,里面的+是普通字符,不是「匹配多次」的量词,只能匹配单个数字或+,无法捕获多位数。
  2. 末尾的?是可选匹配,最多仅匹配1个字符,所以碰到<*15时,只能匹配到<*1,无法完整捕获15。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:05:30