0

ユーザーがHTMLをフォーマットするためのカスタム構文を作成しようとしています

ユーザーは次のように入力できます。

**some text here**
the some more text down here
**Another bunch of stuff**
then some other junk

and I get:

<h1>some text here</h2>
<p>the some more text down here</p>
<h1>Another bunch of stuff</h1>
<p>then some other junk</p>

うまくいけば、必要に応じて他のタグを作成する余地を残すことができます

編集:私の質問は、正規表現関数を記述して、特定のテキストを変換し、開始と終了のすべてのインスタンスを見つけて ** 、適切なまたはタグに置き換える方法です。私は持っています:再インポート

header_pattern = re.compile(r'(?P**)(?P.*)(?P**)', re.MULTILINE)

def format_headers(text):
    def process_match(m):
        return "<h2>%s</h2>" % m.group('header')

    new_text = header_pattern.sub(process_match, text)

    print new_text

ただし、これは最初の ** と最後の ** のみを取得し、途中のものは無視します。

4

2 に答える 2

0

いくつかの標準的なソリューションを使用してください。マークダウンのように。それが最も好ましい。

ヘッダー文字列を一致させるには、 を使用しますr'\*\*(.*?)\*\*'。例を見る

>>> re.sub(r'\*\*(.*?)\*\*','<h1>\\1</h1>', '**some text here** and **another**')
'<h1>some text here</h1> and <h1>another</h1>'
于 2012-12-22T00:39:17.800 に答える
0

Cheetah のような単純なテンプレート言語を使用して、ロジックをハンドラーに組み込むことができない理由はありますか? Cheetah を使用すると、HTML の操作に役立つ一連のメソッドを含むテンプレート オブジェクトを作成できます。数週間前、CherryPy を使用して Web ページを作成しようとしたときに同様の問題が発生しました。チュートリアルで Cheetah テンプレートを見つけたので、フォームの作成が非常に簡単になりました。

于 2012-12-22T00:16:26.977 に答える