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

如何检测字符串中的特定符号并标记特殊词存入对应数组

字符串特殊符号标记词提取实现

需求说明

检测字符串中的特定符号,提取被符号标记的特殊词并按类别存入对应数组,符号与类别对应关系:

  • 动作:ѧ
  • 职业:Ꝭ
  • 地点:լ
  • 数字:₦

示例原文:

₦7₦ hundred ꝬclerkꝬs have said “լOhioլ is ѧdyingѧ”. We are ₦100₦% sure about this

示例译文:

₦7₦ 个 Ꝭ职员Ꝭ们表示“լ俄亥俄州լ 正在 ѧ衰落ѧ”。我们对此有 ₦100₦% 的把握

实现思路与代码(JavaScript)

核心逻辑是针对每个符号类别,用正则匹配被首尾相同符号包裹的内容,提取后存入对应数组。

// 定义符号-类别映射表
const symbolMap = {
  'ѧ': 'actions',
  'Ꝭ': 'jobs',
  'լ': 'locations',
  '₦': 'numbers'
};

// 初始化分类存储数组
const result = {
  actions: [],
  jobs: [],
  locations: [],
  numbers: []
};

// 待处理的目标文本
const text = '₦7₦ 个 Ꝭ职员Ꝭ们表示“լ俄亥俄州լ 正在 ѧ衰落ѧ”。我们对此有 ₦100₦% 的把握';

// 遍历提取各类特殊词
for (const [symbol, key] of Object.entries(symbolMap)) {
  // 构建正则:非贪婪匹配被当前符号包裹的内容
  const regex = new RegExp(`\\${symbol}(.*?)\\${symbol}`, 'g');
  let match;
  while ((match = regex.exec(text)) !== null) {
    // 去重后存入数组(可根据需求移除去重逻辑)
    if (!result[key].includes(match[1])) {
      result[key].push(match[1]);
    }
  }
}

console.log(result);

运行结果

执行代码后,result 对象输出如下:

{
  actions: ["衰落"],
  jobs: ["职员"],
  locations: ["俄亥俄州"],
  numbers: ["7", "100"]
}

额外说明

  • 正则使用非贪婪匹配(.*?),避免将多个符号包裹的内容错误合并提取
  • 若文本存在符号不配对、嵌套的情况,需额外添加边界校验逻辑
  • 可根据需求扩展内容清洗(如去除多余空格)、重复内容处理等功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:55:18