In notepad++ I tried to make a regex to match <tr>
tags. At first, I thought that sharp braces had to be escaped, so I tried \<tr\>
. However, this matched not just the beginning tags as I would have expected, but all of the <tr>
s (both <tr>
and </tr>
). Why is this?
问问题
176 次
2 回答
7
\<
并\>
在某些正则表达式实现中表示“单词边界”,包括 Notepad++。从记事本++文档:
\<
这匹配使用 Scintilla 的单词定义的单词的开头。
\>
这匹配使用 Scintilla 的单词定义的单词结尾。
单词边界是非单词字符和单词字符之间的零宽度匹配。Scintilla对“字字符”的定义是:
单词被定义为以字符 AZ az 0-9 和 _ 开头和/或结尾的字符串。Scintilla 通过用户设置扩展了这个定义。该词的前面和/或后面还必须有提到的字符之外的任何字符。
因此,您的正则表达式\<tr\>
实际上匹配<
(or /
) 和之间的单词边界t
,然后是,然后是和tr
之间的单词边界。r
>
于 2013-09-06T13:46:56.553 回答
3
- 转义需要反斜杠,例如
\{
- 你不需要(不应该)逃避
< or >
- 如果你把它们转义了,这意味着单词边界,不仅
<tr>, </tr>
会,tr,
匹配
于 2013-09-06T13:41:40.860 回答