0

辞書に入力するために、html ドキュメント内のいくつかの変数名を照合しようとしています。私はhtmlを持っています

<div class="no_float">
    <b>{node_A_test00:02d}</b>{{css}}
    <br />
    Block mask: {block_mask_lower_node_A} to {block_mask_upper_node_A}
    <br />
</div>
<div class="sw_sel_container">
    Switch selections: 
    <table class="sw_sel">
        <tr>
            <td class="{sw_sel_node_A_03}">1</td>
            <td class="{sw_sel_node_A_03}">2</td>
            <td class="{sw_sel_node_A_03}">3</td>
            <td class="{sw_sel_node_A_04}">4</td>
            <td class="{sw_sel_node_A_05}">5</td>

{ と (​​ } または : ) の間のコードを一致させたい。しかし、それが {{ で始まる場合は、まったく一致させたくありません (これをインライン css に使用します}

これまでのところ、正規表現があります

(?<=\{)((?!{).*?)(?=\}|:)

しかし、これはまだ {{css}} 内のテキストに一致しています。

4

3 に答える 3

1

次のようなことができます。

re.findall(r'''
    (?<!\{)    # No opening bracket before
    \{         # Opening bracket
      ([^}]+)  # Stuff inside brackets
    \}         # Closing bracket
    (?!\})     # No closing bracket after
''', '{foo} {{bar}} {foo}', flags=re.VERBOSE)
于 2013-05-02T00:20:20.333 に答える
0

これは機能しているようです:

(?<=(?<!{){)[^{}:]+

そしてこれはキャプチャ付きです:

(?<!{){([^{}:]+)
于 2013-05-02T00:32:42.230 に答える