0

请帮忙!我需要创建代码/正则表达式以将以下文本解析为树:

some text I want to ignore==toplevel==
some text, with newlines maybe

===nextlevel===
more text. This is a child node of 'toplevel'

===anotherchild===
this is a sibling of 'nextlevel' and a child of 'toplevel'====leaf====
this is a child of 'anotherchild'
====leaf2====
sibling of 'leaf' & child of 'anotherchild'

===child3===
this is a sibling of 'anotherchild' and 'nextlevel' and a child of 'toplevel'

等等。你明白了。

我无法阻止子级别与顶层匹配。我试过 ={2} 但 === 和 ==== 仍然匹配。只需获得一个匹配 '==toplevel==' 之后的所有文本的匹配将是一个开始。我似乎无法忽略/吃掉换行符。

非常感谢任何帮助!查理。

4

2 回答 2

0

只需匹配所有=+(name)=+字符串,然后计算代码中 = 的数量。

于 2012-10-31T16:49:14.087 回答
0

以下正则表达式将匹配第一行:“^==[^=]”。也就是说,一行以两个等号开头,后面跟着一个不是等号的东西。您可以对其他级别使用类似的模式。

换行跳过/处理实际上取决于您阅读文本的方式。如果可能的话,我会在输入例程中处理换行符,而不是尝试将它们与正则表达式匹配。

于 2012-10-31T15:53:39.813 回答