2

<tr>notepad ++で、タグに一致する正規表現を作成しようとしました。最初は、鋭いブレースをエスケープする必要があると思ったので、試してみ\<tr\>ました。ただし、これは予想どおり開始タグだけでなく、すべての<tr>s (<tr>との両方</tr>) に一致しました。どうしてこれなの?

4

2 に答える 2

7

\<Notepad ++を含む特定の正規表現の実装では、「単語境界」を\>意味します。Notepad++のドキュメントから:

\<これは、Scintilla の単語の定義を使用して、単語の開始に一致します。

\> これは、Scintilla の単語の定義を使用して、単語の末尾に一致します。

単語境界は、非単語文字と単語文字の間のゼロ幅の一致です。シンティラの「単語文字」の定義は次のとおりです。

単語は、文字 A ~ Z a ~ 0 ~ 9 および _ で始まる文字列および/または文字列で終わる文字列として定義されます。Scintilla は、ユーザー設定によってこの定義を拡張します。単語の前および/または後には、言及されていない文字が必要です。

したがって、正規表現\<tr\>は実際には<(or /) との間の単語境界t、その後にtrrとの間の単語境界に一致します>

于 2013-09-06T13:46:56.553 に答える
3
  • エスケープにはバックスラッシュが必要です。\{
  • エスケープする必要はありません (すべきではありません)< or >
  • それらをエスケープした場合、それは単語の境界を意味するだけでなく<tr>, </tr>,tr,一致します
于 2013-09-06T13:41:40.860 に答える