4

我对正则表达式非常陌生。我已经设法很久没有用一根 10 英尺长的杆子碰它了。到目前为止,我尽我所能避免它。但现在一个个人项目正在推动我学习它。

所以我开始了。我正在阅读位于此处的教程:http ://www.regular-expressions.info/tutorial.html

目前我在这里:http ://www.regular-expressions.info/repeat.html

我的问题是:

该教程说<[A-Za-z][A-Za-z0-9]*>将匹配一个 HTML 标记。

但它不会也匹配无效的 html 标签,比如 -<h11><h111>?还有它如何匹配结束标签?

编辑 - 我的问题非常具体。我指的是一个特定教程中的一个特定示例,以澄清我对重复的理解是否正确。再一次,我重复一遍,我不关心用正则表达式解析 html。

4

2 回答 2

6

我认为回答您的问题没有任何害处,因为您尝试学习正则表达式:

1)是的,它也会匹配无效标签,因为它是任何字母后跟另一个字母或数字的零个或多个匹配项。

2)它不会匹配结束标签(必须/在那里搜索某个地方)。

还有一条评论:人们过去用来在文档中查找 html 标记的一种方法是查找左括号和右括号的模式,如下所示:

<\/?[^>]*>

那是左括号,一个可选的斜杠,(除了括号之外的任何内容)-重复,然后是右括号。当然,我不建议任何人这样做。它只是作为练习留在这里。

于 2013-10-13T15:21:11.033 回答
0

该教程说 <[A-Za-z][A-Za-z0-9]*> 将匹配 HTML 标记。

但它不会也匹配无效的 html 标签,比如 - 或 ?还有它如何匹配结束标签?

是的,这将<h11><X098wdfhfdshs98fhj2hsdljhkvjnvo9sudvsodfih23234osdfs>.

如果您只想匹配一个字母后跟一个可选的单个数字,那么您将匹配<h1>,那么您想要<[A-Za-z][0-9]?>

于 2013-10-13T15:29:30.043 回答