2017-03-08 75 views
1

我嘗試解析內容並找到Soundcloud網址。我的正則表達式可以工作,但不會在空間後停止捕捉。url:停止空間捕獲

$re = '/((http:\/\/(soundcloud\.com\/.*|soundcloud\.com\/.*\/.*|soundcloud\.com\/.*\/sets\/.*|soundcloud\.com\/groups\/.*|snd\.sc\/.*))|(https:\/\/(soundcloud\.com\/.*|soundcloud\.com\/.*\/.*|soundcloud\.com\/.*\/sets\/.*|soundcloud\.com\/groups\/.*)))/i'; 

正如你可以在這裏看到https://regex101.com/r/4BZhlu/1當URL是直列它不會停止。

在此先感謝。

+1

替換所有'*'和'\ S *'。 –

回答

2

這個正則表達式很複雜。首先,如Wiktor所述,將.*替換爲\S*(這意味着除空格外的任何內容)。

然後,您可以重新組合下最高:

(https?:\/\/(soundcloud\.com\/\S*|snd\.sc\/\S*)) 

demo

+0

感謝@ThomasAyoub和@CasimireHippolyte 這裏是我的最終正則表達式: '$ re ='/(https?:\/\ /)?(soundcloud \ .com \/\ S * | snd \ .sc \/\ S *)/ i';' https://regex101.com/r/3jgPki/2 – mica