簡體   English   中英

正則表達式:匹配除包含“ .js”和“ .css”的URL之外的任何URL

[英]Regex: Matching any URL except those containing “.js” and “.css”

我正在嘗試替換HTML頁面的每個鏈接,以便人們可以單擊它。 但是我找不到該模式的正則表達式:

href =“ Any_URL”,但包含“ .js”或“ .css”(位於網址中間或結尾)的內容除外

我嘗試了很多模式,例如href =“。+(。css | .js){0}。*”

這個想法是獲取網站的內容,並用href =“#”替換每個URL(包含.js和.css的URL除外),這樣人們就無法點擊它。

$ 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)"

Regex101

這應該使用負前瞻來拒絕其中包含.css.js任何內容:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM