使用正则表达式搜索HTML标记

时间:2013-03-13 04:45:56

标签: regex

根据http://gskinner.com/RegExr/,它提供了一个正则表达式模式来搜索HTML标记:

A) <[^<]+?> - 匹配HTML标记的简化示例

它有效,但我改变了如下的正则表达式模式,它也有效。

B) <[^<]+> C) <[^<]+.>

我想问一下 A) B) C)之间有什么不同?

由于

1 个答案:

答案 0 :(得分:2)

+?就是所谓的懒惰。延迟匹配将匹配尽可能少的字符。例如,给定<[^<]+?>的{​​{1}}将匹配<blah>>,即使它可能匹配<blah>,因为它匹配尽可能少的字符。

相反,<blah>>被称为贪婪,并且可以匹配最可能的字符。它将匹配+,因为它是满足正则表达式的最大匹配。

<blah>>是一个意思是“匹配任何东西”的字符,并且它自己(后面没有+,*等)意味着“匹配任何东西”。 .中的.不会修改+.,它是一个新元素。

正如您所看到的,我们使用+因为HTML代码会在遇到的第一个+?时关闭,>会在关闭HTML代码后立即结束。