2

可能であれば、正規表現を使用して、アイテムの長いリストの周りに順序付けられていないリスト タグを追加する必要があります。このテキストはテキスト ファイルから取得され、元のテキスト ファイルの特定の要素をマークアップ タグに置き換えるためのさまざまな正規表現を含むマークアップ関数内で処理されます。

* Item One
* Item Two
* Item Three
* Item Four

現在、アスタリスクを次のようなリストタグに置き換える正規表現関数があります。

    <li>Item One</li>
    <li>Item Two</li>
    <li>Item Three</li>
    <li>Item Four</li>

正規表現または再帰/ループ プロセスを使用して、リストの先頭と末尾にタグを追加するにはどうすればよいですか? アスタリスクをリストタグに交換する前または後にこれを行うほうがよいでしょうか?

4

4 に答える 4

0
with open('file.txt') as f:
    for line in f:
        if line.startswith('*'):
            print '<li>' + line[2:] + '</li>'
于 2012-05-23T06:42:10.310 に答える
0
In [1]: '<ul>' + ''.join(['<li>'+l[2:]+'</li>' for l in open('foo.txt') if l.startswith('*')]) + '</ul>'
Out[1]: '<ul><li>Item One\n</li><li>Item Two\n</li><li>Item Three\n</li><li>Item Four\n</li></ul>'
于 2012-05-23T06:52:09.913 に答える
0

これが私の解決策ですlxml

from lxml.builder import E
from lxml import etree

items = ['item 1', 'item 2', 'item 3']
ul = E.ul()
for item in items:
    ul.append(E.li(item))
print etree.tostring(ul, pretty_print=True)

上記のコードは次を出力します。

<ul>
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
</ul>
于 2012-05-23T06:56:59.147 に答える
0

*すでに要素を削除してリストに追加したとしましょう:

items = ["Item One", "Item Two", "Item Three", "Item Four"]

次のことができるようになりました。

html_items = '<ul>\n<li>' + '</li>\n<li>'.join(items) + '</li></ul>'
print html_items

出力:

<ul>
<li>Item One</li>
<li>Item Two</li>
<li>Item Three</li>
<li>Item Four</li>
</ul>
于 2012-05-23T08:24:30.370 に答える