如何使用正则表达式清理字符串中GH开头至'-'的前缀部分?
用正则表达式批量清理动态前缀内容
需要处理一批字符串,把所有以GH开头、后面跟着任意长度数字、直到-符号的前缀全部删掉,只保留后面的有效内容;同时要把原字符串里的/、逗号(无论是否带空格)统一替换成空格,保证输出格式整齐。
示例输入:
GH8-30476E/30477E GH82-23124B GH82-23100B GH82-20900Aaa, GH82-20838A GH82-20900C,GH82-20838C GH962-13566A GH82-23596C/23597C/31461C
期望输出:
30476E 30477E 23124B 23100B 20900Aaa 20838A 20900C 20838C 13566A 23596C 23597C 31461C
通用解决方案
直接用下面的正则逻辑就能适配所有情况,JavaScript代码示例:
const inputStrings = [ "GH8-30476E/30477E", "GH82-23124B GH82-23100B", "GH82-20900Aaa, GH82-20838A", "GH82-20900C,GH82-20838C", "GH962-13566A", "GH82-23596C/23597C/31461C" ]; const processedStrings = inputStrings.map(str => str.replace(/GH\d+-|[,/]/g, ' ') // 匹配目标前缀和分隔符,替换为空格 .replace(/\s+/g, ' ') // 合并连续空格 .trim() // 移除首尾多余空格 ); console.log(processedStrings.join('\n'));
正则逻辑说明
GH\d+-:精准匹配以GH开头、后续跟任意数量数字(1个及以上)、直到-的前缀,这部分直接替换为空。[,/]:匹配逗号或斜杠这类分隔符,替换为空格保证格式统一。g修饰符:全局匹配,处理字符串中所有符合条件的内容。- 后续的两次替换是为了清理替换过程中产生的多余空格,让输出更整洁。
内容的提问来源于stack exchange,提问作者ikiK
相关产品推荐
相关产品推荐

