帮忙解释一个php perl正则表达式

/<script[^>]*?>.*</script>/si越详尽越好。不要太粗略。
2025-04-28 00:13:58
推荐回答(3个)
回答1:

HTML HTML 与 XHTML 之间的差异 在 HTML 4.01 中,script 元素的 "language" 属性不被赞成使用。在 XHTML 1.0 Strict DTD 中,script 元素的 "language" 属性不被支持。HTML 4 和 XHTML 在处理脚本中的内容方面有所不同: 在 HTML 4 中,内容类型声明为 CDATA,就是说不会对实体进行解析。在 XHTML 中,内容类型声明为 (#PCDATA),也就是说会对实体进行解析。这意味着,在 XHTML 中,应该编码所有特殊的字符,或者把所有内容嵌套在 CDATA 部分中。为了确保在 XHTML 文档中脚本正确进行解析,请使用如下语法: 必选的属性 属性值描述DTDtypeMIME-type指示脚本的 MIME 类型。STF可选的属性 属性值描述DTDcharsetcharset规定在外部脚本文件中使用的字符编码。STFdeferdefer规定是否对脚本执行进行延迟,直到页面加载为止。STFlanguagescript不赞成使用。规定脚本语言。请使用 type 属性代替它。TFsrcURL规定外部脚本文件的 URL。STFxml:spacepreserve规定是否保留代码中的空白。

回答2:

[^>]的意思是在script标签结束前,可能有的script标签的各种属性,比如type,src等。^出现在[]里面说明除了它后面的字符以外的所有字符~~,在这里就是除了>以外的所有字符~~而*?>里面的>就和前面的<构成一个完整的标签。就是这个意思。没啥难的

回答3:

匹配所有JS脚本/]*?>.*/si以的字符 + > + 任意字符 + 以 结尾