regex - 使用正则表达式搜索 HTML 标签

标签 regex

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

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

它有效,但是我更改了正则表达式模式,如下所示,它也有效。

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

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

谢谢

最佳答案

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

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

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

如您所见,我们使用 +?因为 HTML 标记在第一个 > 处结束遇到过,并且+?通过在可以关闭 HTML 标记时立即结束来反射(reflect)这一点。

关于regex - 使用正则表达式搜索 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15377272/

相关文章:

java - 我想检查输入字符串的格式是否正确

java - 如何检查字符串是否包含 '\r'\t' '\n' ...除了空格

regex - Logstash grok 多行消息

java - 正则表达式将字符串拆分为 5 个部分,如下所示

Python - 为什么正则表达式比在列表中搜索更有效?

regex - Notepad++ regex 如何替换第三次出现的斜杠并绕过第一个和第二个斜杠?

regex - 如何使用正则表达式匹配 TCL 中的括号

javascript - 如何匹配但排除正则表达式模式?

regex - 字符串提取 : Understanding weird output

regex - Dart 中的错误正则表达式匹配