数十の言語で作業してきましたが、Pythonは初めてです。
ここでの私の最初の(おそらく2番目の)質問ですので、優しくしてください...
HTMLのようなマークダウンテキストをwiki形式(具体的には、Linux Tomboy / GNoteのメモをZimに)に効率的に変換しようとして、リストの変換に行き詰まりました。
このような2レベルの順序付けされていないリストの場合...
- 最初のレベル
- セカンドレベル
おてんば娘/GNoteは次のようなものを使用しています...
<list><list-item>First level<list><list-item>Second level</list-item></list></list-item></list>
ただし、Zimの個人用ウィキはそれを望んでいます...
* First level
* Second level
...先頭のタブ付き。
正規表現モジュール関数re.sub()、re.match()、re.search()などを調べて、繰り返しテキストを次のようにコーディングするクールなPython機能を見つけました...
count * "text"
したがって、次のようなことを行う方法があるはずです...
newnote = re.sub("<list>", LEVEL * "\t", oldnote)
ここで、LEVELは、<list>
メモの序数(出現)です。したがって0
、最初に<list>
遭遇1
した場合、2番目に遭遇した場合などになります。
</list>
その後、LEVELは、遭遇するたびにデクリメントされます。
<list-item>
タグは箇条書きのアスタリスクに変換され(必要に応じて改行が前に付きます)、</list-item>
タグは削除されます。
最後に...質問...
- LEVELの値を取得し、それをタブ乗数として使用するにはどうすればよいですか?