2017-10-11 76 views
0

因此,我有一個小應用程序將使用不同的網址參數進行動態重定向。在我的PHP腳本的陣列建立了一個初始順序是這樣的:匹配不總是在一起的特定網址參數

$request = array(
    'extension' => 'rb', 
    'type'  => 'blob', 
    'size'  => '234900', 
    'name'  => 'sdtt', 
    'state'  => '1', 
    'source' => 'example.com', 
) 

製作的網址:

?extension=rb&type=blob&size=234900&name=sdtt&state=1&source=example.com 

但動態部分可以添加或刪除鍵的數組。其中一個可以添加的密鑰是expires,它將位於URL的任何位置,因爲還可以添加其他參數,這意味着我不能保證它總是在source之後,或者這將是最後一個網址參數。

我的目標是那些type=anythingexpires=anything(例如),將它們保存到一個變量,然後從URL中移除它們(可能與pushState()避免頁面重新加載)。基本上是:

延長= RB & type=blob&大小= 234900 &名= sdtt &狀態= 1個&源= example.com &expires=1507755807

我的嘗試是:

(type=[^&]+)(expires=[^&]+) 

但是,這只是讓我的expires參數是否存在,如果不存在,則不會匹配任何內容。

回答

2

添加| (管)爲「或」

(type=[^&]+)|(expires=[^&]+) 

下面是一個例子https://regex101.com/r/rXQijo/1

+0

管道符......我簡直不敢相信。我現在覺得很愚蠢,哈哈,謝謝你,@Himan。 – Mithc