请教应使用何种通配符移除字符串末尾的A1、A2等标识
移除字符串末尾的"A+数字"标识解决方案
问题分析
你之前尝试的Replace公式无效,核心原因是:
- 简单通配符
*是贪婪匹配任意字符,无法精准定位字符串末尾的目标标识 - 部分工具的
Replace函数不支持[123456789]这类字符组语法,?和#的通配规则也没匹配到末尾的数字模式
正确实现方式
1. 支持正则表达式的环境(优先推荐)
如果你的工具支持正则替换(比如Tableau、Power Query、Python、Excel 365的REGEXREPLACE等),用正则精准匹配末尾的空格+A+数字组合:
REGEX_REPLACE([string_mod_4], " A\d+$", "")
A\d+:匹配"A"后面跟1个或多个数字$:强制匹配字符串末尾的内容- 前面的空格确保只替换名字后面的标识,不会误删名字里含"A"的部分(比如名字叫"Amy"的情况)
2. 仅支持简单通配符的环境
如果工具不支持正则,可通过字符串截取实现:
LEFT([string_mod_4], LEN([string_mod_4]) - IF(RIGHT([string_mod_4], 2) LIKE "A#", 2, IF(RIGHT([string_mod_4], 3) LIKE "A##", 3, 0) ) )
- 先判断字符串末尾2位是否是"A+单个数字",是则截取前N-2位
- 若末尾3位是"A+两位数字"(比如"A10"),则截取前N-3位
- 无匹配则保留原字符串
内容的提问来源于stack exchange,提问作者csibicode
相关产品推荐
相关产品推荐

