我想用正则表达式匹配html代码中的input,select和textarea这三个标签,其他的标签都不需要。
我的写法如下:
<code>$text = "<form name='loginpageform' method='post' action='www.baidu.com'>"; $pattern="/<.*?[input|textarea|select].*?>/i"; preg_match($pattern1,$text,$matches); var_dump($matches);</code>
但是我发现我写的却可以匹配所有的标签,我知道是[input|textarea|select]写错了,但是我不知道该如何修改或者是有更简单的方法来写,希望有大神可以解答一下。
我想用正则表达式匹配html代码中的input,select和textarea这三个标签,其他的标签都不需要。
我的写法如下:
<code>$text = "<form name='loginpageform' method='post' action='www.baidu.com'>"; $pattern="/<.*?[input|textarea|select].*?>/i"; preg_match($pattern1,$text,$matches); var_dump($matches);</code>
但是我发现我写的却可以匹配所有的标签,我知道是[input|textarea|select]写错了,但是我不知道该如何修改或者是有更简单的方法来写,希望有大神可以解答一下。
[] 的意思匹配指定字符,而不是字符串
立即学习“PHP免费学习笔记(深入)”;
(string1|string2) 才是匹配多个字符串
(?! string1) 匹配 非 字符串
正确的为:
<code>/<.*?(input|textarea|select).*?>/is</code>
比如
<code>[a-zA-z0-9_\-] 表示匹配 a~z A~Z 0~9 _ - 这些字符 (只有一个字符) [a-zA-z0-9_\-]* 表示匹配 a~z A~Z 0~9 _ - 只有这些字符的字符串(注意后面的 * ) (input|textarea|select) 表示匹配这些字符串</code>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号