SOURCE

// 优化后的函数
// function processCarModelEnhanced(str) {
//   // 匹配¢开头,以逗号结尾的模式,并捕获¢前面的型号和¢后面的型号
//   const pattern = /([a-zA-Z0-9]+)¢([^,]+)(?=,|$)/g;
  
//   // 用于存储提取的车型
//   const extractedModels = [];
//   // 用于存储¢和,之间的型号
//   const middleModels = [];
//   // 用于存储¢之前的车型
//   const beforeModels = [];
  
//   // 替换匹配的部分
//   const result = str.replace(pattern, (match, beforeModel, middleModel) => {
//     extractedModels.push(beforeModel);
//     middleModels.push(middleModel);
//     beforeModels.push(beforeModel);
    
//     // 只保留¢前面的车型
//     return beforeModel;
//   });
  
//   return {
//     result, // 1、处理完成的字符串
//     matchedCar: middleModels.join(','), // 2、匹配的车型¢ICE302B4,之间的ICE302B4
//     trueCar: beforeModels.join(','), // 3、¢ICE302B4,之前的车型
//     allExtractedModels: extractedModels.join(','), // 原有的提取车型
//   };
// }

// 测试增强版
// console.log('=== 增强版测试 ===');
let str2 = '没有找到您想要咨询的车型信息,您是不是要咨询以下车型:ICE302B2¢ICE302B4,ICE302S';
// console.log('处理前:', str2);
// const result = processCarModelEnhanced(str2);
// console.log('处理后:', result.result);
// console.log('完整的返回值:', JSON.stringify(result, null, 2));

// 也可以只返回您需要的三个字段
function processCarModelOptimized(str) {
  const pattern = /([a-zA-Z0-9]+)¢([^,]+)(?=,|$)/g;
  
  const matchedCars = [];
  const beforeCars = [];
  
  const result = str.replace(pattern, (match, beforeCar, matchedCar) => {
    beforeCars.push(beforeCar);
    matchedCars.push(matchedCar);
    return beforeCar;
  });
  
  return {
    result,
    matchedCar: matchedCars.join(','),
    trueCar: beforeCars.join(','),
  };
}

// 测试简化版
console.log('\n=== 简化版测试 ===');
const simpleResult = processCarModelOptimized(str2);
console.log('完整的返回值:', simpleResult);

// // 测试单个匹配的情况
// console.log('\n=== 单个匹配测试 ===');
// const str3 = '没有找到您想要咨询的车型信息,您是不是要咨询以下车型:ICE302B2¢ICE302B4,ICE352B2,ICE302S';
// const singleResult = processCarModelOptimized(str3);
// console.log('处理前:', str3);
// console.log('处理后:', singleResult.result);
// console.log('匹配的车型(¢和,之间的):', singleResult.matchedCar);
// console.log('¢之前的车型:', singleResult.trueCar);
console 命令行工具 X clear

                    
>
console