目前我正在使用某种在每个级别上都有一个正则表达式的树来将一些任意文本文件解析成一棵树。到目前为止,一切正常,正则表达式结果被传递给子节点以进一步解析文本。为了获得节点和子节点之间的链接,节点本身也有一个名称,在正则表达式中用作组名。因此,在解析了一些文本之后,我将得到一个包含一些命名组的正则表达式,并且节点本身也包含具有相同名称的子节点,这会导致递归结构进行一些任意解析。
现在我遇到了麻烦,为了让下一步中这棵树的处理更容易一些,我需要在我的树中不同节点下的文本文件中的相同信息。由于事实上,这可能有点难以理解,这是一个单元测试,显示了我想要实现的目标:
string input = "Some identifier=Just a value like 123";
// ToDo: Change the pattern, that the new group 'anotherName' will contain the same text as 'key'.
string pattern = "^(?'key'.*?)=(?'value'.*)$";
Regex regex = new Regex(pattern);
Match match = regex.Match(input);
var key = match.Groups["key"];
var value = match.Groups["value"];
var sameAsKeyButWithOtherGroupName = match.Groups["anotherName"];
Assert.That(key, Is.EqualTo(sameAsKeyButWithOtherGroupName));
任何想法如何让这个工作?