我想用正規表示式來匹配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]
寫錯了,但是我不知道該如何修改或者是有更簡單的方法來寫,希望有大神可以解答一下。
[] 的意思匹配指定字符,而不是字串
(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>