【发布时间】:2013-01-26 16:14:59
【问题描述】:
基于 YAML 文件中的以下数据,是否可以在 Ruby 中创建一个匹配列表中相应 Group 和 Item 键的正则表达式
源数据
Groups:
GroupA:
- item 1
- item 3
Group B:
- itemA
- item 3
C:
- 1
- item 3
测试字符串:
GroupA item 1
Group B itemA
c item 1
C 1
GroupA 1
预期匹配组
Match 1:
1. GroupA
2. item 1
Match 2:
1. Group B
2. itemA
Match 3:
1. C
2. 1
感谢您的帮助!
伊恩
=================================== 更新:关注 Tin Mans 评论 -
这里有一些更进一步的背景......
插件内部存在一个包含许多方法的类。每个方法都接收一个字符串,该字符串被解析以确定执行什么操作。在某些方法中,字符串的内容用于后续操作 - 当需要时,使用正则表达式来提取(或匹配)字符串的相关部分。不幸的是,无法控制上游代码来改变这个过程。
在这种情况下,字符串采用“组项目状态”的形式。但是,组和项目名称不一定是单个单词,并且每个组不必包含所有项目。例如
"Group A Item 1"
"c item 1"
"GroupA 1"
因此,需要一种方法来解析输入字符串以获取相应的 Group 和 Item,以便将正确的值传递给更进一步的方法。鉴于该类中的其他类似方法使用正则表达式,并且有一个 YAML 文件包含组 - 项对的最终列表,所以我首先想到的是正则表达式。
但是,我愿意接受更好的方法
非常感谢
伊恩
【问题讨论】: