// 优化后的函数
// 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