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

JavaScript如何通过正则匹配#占位符对应位置数字提取目标子串

正则实现方案

核心逻辑是先对带#占位符的模板做正则化转换,再从长文本中匹配符合结构的子串,不需要额外复杂逻辑。

实现步骤

  • 先对模板字符串做正则特殊字符转义,避免模板里的普通字符被误识别为正则语法标记
  • 将转义后模板里的所有#占位符替换为\d+,该正则片段可匹配1位及以上的连续数字,完全符合占位符匹配任意数字的要求
  • 用生成的最终正则规则扫描长文本,提取匹配到的子串即可

代码示例(Python实现)

import re

Str1 = "Adds 2 to 5 Cold Damage Adds 20 to 50 Fire Damage Adds 1 to 100 Lightning Damage"
Str2 = "Adds # to # Fire Damage"

# 模板转正则规则
regex_pattern = re.escape(Str2).replace(r'\#', r'\d+')
# 执行匹配
match_result = re.search(regex_pattern, Str1)
res = match_result.group() if match_result else ""

print(res)

运行上述代码的输出和预期完全一致:

Adds 20 to 50 Fire Damage

适配调整说明

如果需要提取长文本里所有符合模板结构的子串,把代码里的re.search替换为re.findall即可拿到全部结果;如果需要限制占位符匹配的数字长度,可将替换用的\d+调整为对应规则,比如要匹配1-3位数字就换成\d{1,3}。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:33:25