首頁 >後端開發 >php教程 >php正規表示式的html標籤符合input,select,textarea的問題

php正規表示式的html標籤符合input,select,textarea的問題

WBOY
WBOY原創
2016-09-28 08:54:101604瀏覽

我想用正規表示式來匹配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>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn