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

如何编写正则表达式提取数字结尾表名+%%列名%%格式内容?

正确正则方案及问题分析

目标匹配规则

需要提取的内容格式为:字母开头+数字结尾的表名 + 点号 + %%包裹的列名

正确正则表达式

[a-zA-Z]+\d+\.\%%[a-zA-Z]+\%%

如果列名允许包含数字或下划线,可调整为更通用的版本:

[a-zA-Z]+\d+\.\%%[a-zA-Z0-9_]+\%%

正则各部分解释

  • [a-zA-Z]+:匹配表名的字母前缀(至少1个字母,如CUSTOMER、CREDIT)
  • \d+:匹配表名末尾的数字(至少1个数字,如1)
  • \.:匹配表名与列名之间的点号(必须转义,否则.会匹配任意字符而非实际点号)
  • %%:匹配列名的前后包裹符号(%不是正则特殊字符,无需转义)
  • [a-zA-Z]+:匹配%%之间的列名字母(若需支持其他字符,替换为对应规则即可)

原正则的问题

你之前使用的[a-zA-Z*][0-9].\%%.*?\%%存在以下缺陷:

  • [a-zA-Z*]仅匹配单个字母或*,无法匹配多字母组成的表名前缀
  • [0-9]仅匹配单个数字,无法适配多位数字结尾的表名
  • 未转义的.会匹配任意字符,而非实际的点号
  • \%%属于多余转义,%无需转义
  • .*?会匹配任意字符直到下一个%%,容易包含无关内容

测试结果

用目标文本GET_INFO(CUSTOMER1.%%NAME%%='TEST' AND CREDIT1.%%AMOUNT%%>1000)=1测试,可成功提取:

  • CUSTOMER1.%%NAME%%
  • CREDIT1.%%AMOUNT%%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:50:47