2

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

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

它可以工作,但是我如下更改了正则表达式模式,它也可以工作。

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

我想问一下A)B)C)有什么区别?

谢谢

4

1 回答 1

2

+?就是所谓的懒惰。惰性匹配将匹配尽可能少的字符。例如,<[^<]+?>given<blah>>将匹配<blah>即使它可能已经匹配<blah>>,因为它匹配尽可能少的字符。

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

.是一个字符,意思是“匹配任何东西”,它本身(后面没有 +、* 等)表示“匹配任何东西”。.in+.不修改,+它是一个新元素。

如您所见,我们使用+?HTML 标记是因为在第一次>遇到时关闭,并+?通过在关闭 HTML 标记时立即结束来反映这一点。

于 2013-03-13T04:58:13.923 回答