php正则表达式的html标签匹配input,select,textarea的问题
本文介绍了php正则表达式的html标签匹配input,select,textarea的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我想用正则表达式匹配html代码中的input,select和textarea这三个标签,其他的标签都不需要。
我的写法如下:
$text = "<form name='loginpageform' method='post' action='www.baidu.com'>";
$pattern="/<.*?[input|textarea|select].*?>/i";
preg_match($pattern1,$text,$matches);
var_dump($matches);
但是我发现我写的却可以匹配所有的标签,我知道是[input|textarea|select]
写错了,但是我不知道该如何修改或者是有更简单的方法来写,希望有大神可以解答一下。
解决方案
[] 的意思匹配指定字符,而不是字符串
(string1|string2) 才是匹配多个字符串
(?! string1) 匹配 非 字符串
正确的为:
/<.*?(input|textarea|select).*?>/is
比如
[a-zA-z0-9_\-] 表示匹配 a~z A~Z 0~9 _ - 这些字符 (只有一个字符)
[a-zA-z0-9_\-]* 表示匹配 a~z A~Z 0~9 _ - 只有这些字符的字符串(注意后面的 * )
(input|textarea|select) 表示匹配这些字符串
这篇关于php正则表达式的html标签匹配input,select,textarea的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文