“<br [^>]*>” 正则表达式是什么意思?

3

我在解析HTML文档时看到了这个正则表达式。

我知道它匹配<br>元素,但我不确定[^>]*>部分的意思。 据我理解,该正则表达式表示一个元素应以“br”开头,但为什么他们需要使用[^>]*>部分呢?为什么不使用<br*>呢?


你知道字符类是什么吗?[...]? - Sotirios Delimanolis
考虑到 <br/><br></br> 都是有效的 XHTML。 - Elliott Frisch
我想我明白了。* 包含 <br></br> 之间的所有元素。 - Donotello
你可以在这里阅读更多关于字符类的内容。 - DavidRR
2个回答

8

方括号 [] 表示一组字符。如果 [] 以 ^ 开头,表示排除这些字符。因此 [^>]*> 匹配“除 > 外的任何字符,后跟一个 >”,用于获取 br 和 > 之间的任何内容。


6
这是正则表达式<br[^>]*>的详细说明:
  1. 匹配字符<br

  2. 匹配任何不是>的字符

  3. 重复0到无限次,尽可能多地回溯(贪婪匹配)

  4. 匹配字符>


此外,你在帖子中提到了正则表达式<br*>
这实际上会匹配<b,然后它会匹配r“0到无限次”,最后匹配>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接