<
すべての文字を選択したいが、<pre
または正規表現を使用</pre
してこのドキュメント内の
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<pre>
if a < b
</pre>
</body>
</html>
<
すべての文字を選択したいが、<pre
または正規表現を使用</pre
してこのドキュメント内の
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<pre>
if a < b
</pre>
</body>
</html>
それは正規表現エンジンに依存します。否定的な先読みアサーションを持つ Perl 正規表現をサポートしている場合は、次のことができます。
<(?!(pre)|(\/pre))
また
<(?!\/?pre)
group1(?!group2)
group1
は、「次の部分が一致しない場合にのみ一致する」ことを意味します (したがって、group2
「否定先読み」という名前がgroup1
付けられました。<
group2
\/?pre
[...]
単一文字クラス専用です。
したがって[^(pre|/pre)]
、これらの文字のいずれも含まれないことを意味します:(pre|/pre)
または、同等に、これらの文字のいずれも含まれないことを意味し)(|/pre
ます (括弧と(私が覚えている限り) では|
何も意味しないため)。[]
次に、でオプションにする必要があると言った?
ので、何も除外しません。
おそらく先読みが必要です:
\<(?!/?pre)
(?!...)
次の文字が括弧内に指定されたパターンと一致しない場合に「一致」する否定的な先読みです。
/?pre
の簡略化ですpre|/pre
。
これは、RegEx が HTML の最良のアイデアではない理由を示す素敵な例です。
いずれにせよ、無視することを選択した場合は、次の式を使用してください (HTML で有効な空白と大文字も処理されます)。
<(?!(\/?\s*[Pp][Rr][Ee]))