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

Looker Studio中REGEXP_MATCH无法匹配带文本的NPS数据求助

Looker Studio中REGEXP_MATCH匹配NPS带文本值失败的解决办法

问题场景

在Looker Studio中使用REGEXP_MATCH()对NPS调查数据做分类(推荐者Promoters、被动者Passives、贬损者Detractors)时,纯数值选项(1-9)能正常匹配,但带附属文本的"0 (not at all likely)"和"10 (extremely likely)"始终无法被识别。尝试多种正则表达式后,仅能匹配9,无法匹配10 (extremely likely)。

试过的正则表达式示例

  • REGEXP_MATCH(How likely would you be to recommend this offering to others?, r'extremely likely')
  • r'^[0-9]+\s*(extremely likely)$'
  • r'^10\s*(extremely likely)$|^9$'
  • r'^10\s*(extremely likely)$|9'
  • r'^9|10 (extremely likely)$'
  • r'^(9|10 (extremely likely))$'
  • “(9|.*10.*)”
  • "(9|.*extremely likely.*)"

问题原因

你忽略了正则表达式中括号是特殊元字符这一点:目标文本里的(extremely likely)包含字面括号,直接写进正则会被解析为「分组」语法,而不是匹配实际的括号字符,导致正则无法匹配到完整的10 (extremely likely)字符串。

解决办法

方案1:转义特殊字符

将目标文本中的(和)用反斜杠转义为\(和\),让正则将其识别为普通字符。匹配推荐者的正确表达式如下:

REGEXP_MATCH(How likely would you be to recommend this offering to others?, r'^9$|^10\s*\(extremely likely\)$')

方案2:提取数值后判断(更稳定)

如果仅需要基于NPS数值进行分类,可以先提取文本中的数字部分,再做数值比较,完全规避文本匹配的问题:

CASE
  WHEN CAST(REGEXP_EXTRACT(How likely would you be to recommend this offering to others?, r'^\d+') AS NUMBER) >=9 THEN 'Promoters'
  WHEN CAST(REGEXP_EXTRACT(How likely would you be to recommend this offering to others?, r'^\d+') AS NUMBER) >=7 THEN 'Passives'
  ELSE 'Detractors'
END

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:37:23