如何检测字符串中的特定符号并标记特殊词存入对应数组
字符串特殊符号标记词提取实现
需求说明
检测字符串中的特定符号,提取被符号标记的特殊词并按类别存入对应数组,符号与类别对应关系:
- 动作:
ѧ - 职业:
Ꝭ - 地点:
լ - 数字:
₦
示例原文:
₦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
相关产品推荐
相关产品推荐

