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

次の正規表現は最初の行に一致します: "^==[^=]"。つまり、2 つの等号で始まり、その後に等号以外の何かが続く行です。他のレベルには類似のパターンを使用できます。

改行のスキップ/処理は、テキストの読み方に大きく依存します。可能であれば、正規表現と一致させようとするのではなく、入力ルーチンで改行を処理します。

于 2012-10-31T15:53:39.813 に答える