正则表达式:匹配除包含".js"和".css"的 URL 之外的任何 URL



我正在尝试替换HTML页面的每个链接,以便人们可以单击它。 但是我找不到该模式的正则表达式:

href="Any_URL">除了那些包含".js"或".css"(在URL的中间或末尾(

我尝试了许多模式,如href=".+(.css|。js({0}.*">

这个想法是获取网站的内容,并将每个URL(包含.js和.css的URL除外(替换为href="#",这样人们就无法点击它。

$subject = file_get_contents($url, FILE_USE_INCLUDE_PATH(;获取网站内容

$pattern='#href=".+(.css|.js({0}.*"#i'//不起作用

$page=preg_replace($pattern, 'href=#', $subject(;//将所有链接替换为不可点击的内容

返回$page;

{0}仅适用于匹配项。所以它不会在比赛中计算,但可能会在那里。 试试这个:

href="(.+)(?<!.css|.js)"

正则表达式101

这应该拒绝任何包含.css.js的内容,使用负面的展望:

/href=".+.(?!css|js).+"/

最新更新