我想搜索特定內容中的每個腳本標記,但type =「text/x-template」的腳本除外。php:如何匹配除特定類型以外的所有腳本標記
這種模式中的所有腳本匹配:
'/(\\s*)<script(\\b[^>]*?>)([\\s\\S]*?)<\\/script>(\\s*)/i'
但我不知道如何使它排除「文本/ X-模板」。
謝謝。
我想搜索特定內容中的每個腳本標記,但type =「text/x-template」的腳本除外。php:如何匹配除特定類型以外的所有腳本標記
這種模式中的所有腳本匹配:
'/(\\s*)<script(\\b[^>]*?>)([\\s\\S]*?)<\\/script>(\\s*)/i'
但我不知道如何使它排除「文本/ X-模板」。
謝謝。
如何:
preg_match_all("/<script.*type=\"(?!text\/x-template).*>(.*)<\/script>/im", $input_lines, $output_array);
我解決了它。
/(\s*)<script(?![ \t\r\n]+type\s*=\s*"\s*text\/x\-template\s*").*?(\b[^>]*?>)([\s\S]*?)<\/script>(\s*)/
看看這個問題,爲什麼你不應該使用正則表達式來解決這個問題http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – delboy1978uk
不要使用正則表達式解析HTML或XML!使用DOMDocument! 見我回答這個問題在這裏:
另外請注意,你應該準備它的CA當script標籤沒有type屬性時。 – ARS81