使用Kotlin从Properties文件生成键值映射列表的需求
嘿,这个需求不难搞定!你要处理的是那种带注释、值用单引号包着的特殊Properties文件对吧?核心就是提取等号左边的键和单引号里的值,搞成一个映射表方便后续调用。我拿Python给你写个实用的例子,思路通了换其他语言也一样:
核心思路
- 过滤无效内容:先跳过注释行(//开头)和空行,只专注于有键值对的行
- 精准匹配键值:用正则表达式捕获等号左侧的键,以及单引号包裹的对应值
- 构建映射表:把捕获到的键值对存进字典/Map里,后续直接按键取值就行
代码实现(Python)
import re def parse_custom_properties(file_path): key_value_map = {} # 正则匹配规则:兼容键前后的空白,精准抓单引号里的值 match_pattern = re.compile(r'^\s*(\w+)\s*=\s*\'([^\']+)\'') with open(file_path, 'r', encoding='utf-8') as file: for line in file: cleaned_line = line.strip() # 跳过注释和空行 if not cleaned_line or cleaned_line.startswith('//'): continue # 匹配当前行的键值对 result = match_pattern.match(cleaned_line) if result: key = result.group(1) value = result.group(2) key_value_map[key] = value return key_value_map # 调用示例:替换成你的文件路径 my_properties = parse_custom_properties('your_data.properties') # 测试取值 print(my_properties.get('banana')) # 输出:5.5 print(my_properties.get('tomatoes')) # 输出:3.4.s2
额外说明
- 如果你的键包含
-这类非字母数字的字符,把正则里的\w+改成[^=]+就行,这样能匹配等号前所有非等号的字符(记得还是要处理前后空白) - 要是用Java/Go等其他语言,逻辑完全一致:逐行读文件→过滤无效行→正则匹配→存进对应的数据结构(比如Java的HashMap)
- 后续要输出值的话,直接从映射表里按键提取就好,比如
my_properties['apples']就能拿到3.6f
内容的提问来源于stack exchange,提问作者ConnectionistSystems
相关产品推荐
相关产品推荐

