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

如何用JS正则捕获含非数字的带/无引号category_name

正则调整方案

核心逻辑

针对需求调整正则,同时支持两种格式的category_name匹配,自动排除纯数字内容,且捕获结果直接不含引号:

  • 带双引号的内容:保留引号内的所有字符(包括空格),但捕获时排除引号
  • 不带引号的内容:匹配到空格为止,且内容至少包含一个非数字字符
  • 纯数字的category_id直接排除

最终正则表达式

/c:(?:"(?<category_name>[^"]*\D[^"]*)"|(?<category_name>\S*\D\S*))/g

正则拆解

  • c::匹配固定前缀
  • 带引号分支:"(?<category_name>[^"]*\D[^"]*)"
    • ":匹配前后双引号(不纳入捕获)
    • [^"]*\D[^"]*:确保引号内至少有一个非数字字符(\D),同时覆盖所有非引号内容
  • 不带引号分支:(?<category_name>\S*\D\S*)
    • \S*:匹配任意非空格字符,\D确保内容不全是数字,覆盖从c:后到空格前的所有有效内容
  • /g:全局匹配所有符合条件的内容

测试验证

输入字符串:

python c:192 c:1Stackoverflow c:"Stack Overflow2"

捕获到的category_name结果:

  1. 1Stackoverflow
  2. Stack Overflow2

完美符合需求,且自动过滤了纯数字的192。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:15:43