1

<すべての文字を選択したいが、<preまたは正規表現を使用</preしてこのドキュメント内の

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <pre>
        if a < b
    </pre>
</body>
</html>

ここに画像の説明を入力

4

3 に答える 3

1

それは正規表現エンジンに依存します。否定的な先読みアサーションを持つ Perl 正規表現をサポートしている場合は、次のことができます。

<(?!(pre)|(\/pre))

また

<(?!\/?pre)

group1(?!group2)group1は、「次の部分が一致しない場合にのみ一致する」ことを意味します (したがって、group2「否定先読み」という名前がgroup1付けられました。<group2\/?pre

于 2013-04-26T17:58:22.960 に答える
0

[...]単一文字クラス専用です。
したがって[^(pre|/pre)]、これらの文字のいずれも含まれないことを意味します:(pre|/pre)
または、同等に、これらの文字のいずれも含まれないことを意味し)(|/pre
ます (括弧と(私が覚えている限り) では|何も意味しないため)。[]

次に、でオプションにする必要があると言った?ので、何も除外しません。

おそらく先読みが必要です:

\<(?!/?pre)

(?!...)次の文字が括弧内に指定されたパターンと一致しない場合に「一致」する否定的な先読みです。

/?preの簡略化ですpre|/pre

于 2013-04-26T17:58:29.767 に答える
0

これは、RegEx が HTML の最良のアイデアではない理由を示す素敵な例です

いずれにせよ、無視することを選択した場合は、次の式を使用してください (HTML で有効な空白と大文字も処理されます)。

<(?!(\/?\s*[Pp][Rr][Ee]))
于 2013-04-26T18:14:27.877 に答える