2016-12-02 139 views

回答

1

有兩件事情:

  • 正斜槓/必須要躲過這樣\/
  • (.*?)將匹配任何字符的最小量,包括零個字符。在這種情況下,它將始終與一個空字符串匹配。
  • .*將採取儘可能多的字符就可以了,包括正斜槓

一個簡單的解決方案將是:

/.+?\/(.*?)\// 

更新

由於您使用的JavaScript,請嘗試以下代碼:

var url = "/search/acid/all"; 
var regex = /.+?\/(.*?)\//g; 
var match = regex.exec(url); 
console.log(match[1]); 

變量match是一個列表。該列表的第一個元素是完全匹配(匹配的所有內容),因爲您對我們希望匹配的特定組感興趣(我們在正則表達式中放入括號中),所以您可以忽略它。

你可以看到工作代碼here

+0

感謝您的快速回復,但這是提取第一個和第二個詞。 – divein

+0

@divein你在用什麼編程語言? – Rodolfo

+0

我正在使用JavaScript。我試過這個編輯器https://regex101.com/r/0NpWcy/3 – divein

1

此正則表達式將這樣的伎倆:

(?:[^\/]*.)\/([^\/]*)\/ 

Proof

+0

感謝您的回覆。以上正則表達式爲PHP工作,但不適用於JavaScript。另外我的查詢是/ search/acid/all。我在原文中編輯了錯字。 – divein

+0

當語言味道投入Javascript,它似乎仍然工作。 https://regex101.com/r/sDd2Wh/1 –

+0

好吧,它給了我一個兩場比賽1)。/search/acid/2).acid。我只是想'酸'作爲一個匹配。 – divein