字典鲁棒性优化:用正则消除字符串多余空格的方案探讨
正则处理字符串多余空格的解决方案
正则完全可以解决你的问题,核心是对name[i]的字符串做两步标准化处理:
- 去除字符串首尾的所有多余空格
- 将字符串中间连续的多个空格压缩为单个空格
具体实现示例(以Python为例)
先写一个通用的字符串清理函数:
import re def normalize_string(s): # 第一步:移除首尾所有空白字符 trimmed = re.sub(r'^\s+|\s+$', '', s) # 第二步:把中间连续的空白字符替换成单个空格 normalized = re.sub(r'\s+', ' ', trimmed) return normalized
然后在你的赋值代码里引入这个处理:
cleaned_name = normalize_string(name[i]) destination_array[i, name_column_dictionary[cleaned_name]] = matching_symbols[i].value
效果说明
不管name[i]是"my string "(带首尾空格)、"my string"(中间多空格)还是" my string "(首尾+中间多空格),经过处理后都会变成标准的"my string",完美匹配你字典里来自文本文件的键。
如果你的场景中只需要处理空格(不需要处理制表符、换行等其他空白字符),可以把正则里的\s替换成 (单个空格),比如r'^ +| +$'和r' +'。
内容的提问来源于stack exchange,提问作者Nocxy
相关产品推荐
相关产品推荐

