如何用正则或字符串裁剪方法去除末尾字母及后续跟随的数字?
字符串处理解决方案
核心思路
- 从左到右遍历目标字符串,找到第一个英文字母所在的索引位置
- 如果存在字母:直接截取字符串开头到该索引位置的子串,自动忽略字母及之后的所有内容
- 如果不存在字母(字符串全为数字):直接截取字符串开头到总长度减1的子串,去掉末尾最后一位数字
该方案不需要硬编码删除的字符位数,可适配任意长度的字母后缀场景,兼容性远高于固定删除后N位的写法。
代码实现(C#)
public static string ProcessShelfCode(string input) { // 兼容空输入的边界情况 if (string.IsNullOrEmpty(input)) return input; // 查找第一个英文字母的位置 for (int i = 0; i < input.Length; i++) { if (char.IsLetter(input[i])) { return input.Substring(0, i); } } // 全数字场景,删除最后一位 return input.Length > 1 ? input.Substring(0, input.Length - 1) : input; }
测试效果验证
所有示例输入处理后均符合要求:
- 输入
171A1→ 输出171 - 输入
171A→ 输出171 - 输入
171A0→ 输出171 - 输入
15211→ 输出1521 - 输入
15210→ 输出1521 - 输入
15190→ 输出1519
内容的提问来源于stack exchange,提问作者user15916724
相关产品推荐
相关产品推荐

