明凯博客

关注网站技术,一个特立独行的程序员

正则表达式表示html元素及元素内容

需求是这样子的:
现在有一个表单,

1
<form action='mk.php'>.......</form>

表单里面的省略号代表里面的内容,里面有各式各样的标签<>。
想写一个正则表达式匹配整个form表单,包括form标签,是html文件里面的内容。

首先想到的是:

1
2
<form .*</form>
</form>

这样子:

1
2
<form [^>]*/form>
</form>

还有这样子:

1
2
<form .*<\/form>
</form>

只要是form里面有标签的,这样都匹配不到内容,莫名其妙啊,也不知道是什么原因。

后来请教了一个正则表达式的高手,他告诉我了另外一种写法:

1
2
<form [\s\S]*</form>
</form>

这涉及到了贪婪模式和非贪婪模式。

[\s\S] 意思是匹配所有 空白字符+非空白字符 , 说白了也就是全部字符都可以
* 意思是0个或多个, 直到遇到了后边的就停止了。

这样子就匹配了form里面的所有内容了。

, , ,

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注