最簡單的使用模式是:
/([^\/?&]*)$/
說明:
()
是捕獲組,說明你要捕捉什麼樣的格局中相匹配。
[ ]
定義了一個匹配的字符集。裏面使用^
表示「不」這些字符。我指定/
(當然是轉義)以及?
和&
(用於表示HTTP URI參數)來表示「匹配任何不是正斜槓,和符號或問號的字符」。
*
是一個量詞,意思是「0或更多重複」。
最後,模式末尾使用的$
表示「錨定到字符串末尾」。
該模式可以匹配代表文件名和參數的URI末尾的任何內容。如果你只想要不帶參數的文件名,我會建議使用:
/([^\/?&]*)(?:\?[^?]*)?$/
額外模式的說明:
(?: )
是一個非捕獲組,用於指定一種模式。當你想添加一個量詞時這很有用。最後我使用了?
,這意味着該模式可以發生「0或1次」。
[^?]*
表示「匹配任何不是問號0或更多次的內容」。
此模式將匹配的網址,如下面:
http://www.example.com/ (no captured filename)
http://www.example.com/file.js (capturing "file.js")
http://www.example.com/?q=something (no captured filename)
http://www.example.com/file.js?q=something (capturing "file.js")
此外,一個真正好的正則表達式測試儀可在http://www.regex101.com/。它支持perl/php,Python,Javascript和Go。
這裏是最後的正則表達式的操作的鏈接:https://www.regex101.com/r/IwhSBr/1 雖然在右邊,它會說,該模式不只是文件名和匹配的參數,每場比賽應該指出,「第1組」包含文件名或無。
沒有試過,到目前爲止,我認爲 – Fallenhero
PHP: - '$數據=爆炸( '/',$ link_string); echo $ data [count($ data)-1];' –