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

如何用Regex快速提取大文本中以TEST-开头的字符串?

解决方案

原代码错误原因

  1. 字符串中的"是HTML转义字符,在JavaScript中直接使用会触发语法错误,需替换为实际双引号(")或转义双引号(\")。
  2. 错误使用split("\\"),这不是提取目标字符串的合理方式,反而会破坏文本结构。
  3. for...in不适合遍历数组,它会遍历数组索引及原型链属性,而非直接遍历数组元素。

正确实现方案

提取所有以TEST-开头的字符串,最高效的方式是用正则表达式一次性匹配所有符合规则的目标,无需循环分割数组:

// 原始文本(已替换HTML实体为实际字符)
const rawText = `Lorem ipsum dolor sit amet, consectetur adipisici elit "TEST-12345"
Lorem ipsum dolor sit amet, consectetur adipisici elit 'TEST-12345'
Lorem ipsum dolor sit amet, consectetur adipisici elit " TEST-12345 "
Lorem ipsum dolor sit amet, consectetur adipisici elit "TEST-12345" sed diam nonumy eirmod tempor invidunt
Lorem ipsum dolor sit amet, consectetur adipisici elit " TEST-12345 "`;

// 正则匹配所有以TEST-开头的字符串
const testPattern = /TEST-\w+/g;
const matches = rawText.match(testPattern);

// 输出匹配结果
if (matches) {
  matches.forEach(match => console.log(match));
}

正则说明

  • TEST-: 匹配固定前缀
  • \w+: 匹配后续的字母/数字/下划线(若目标字符串包含其他特殊字符,可替换为[^"\s']+,表示匹配除引号、空格外的所有字符)
  • g: 全局匹配标记,提取所有符合规则的结果

运行输出

TEST-12345
TEST-12345
TEST-12345
TEST-12345
TEST-12345

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:45:33