2016-12-27 85 views
0

串嘗試寫reddits subreddits正則表達式。我的正則表達式將用鏈接替換subreddit名稱,但我希望它忽略已經顯示的url內的鏈接。例如,假設我有以下3個字符串。正則表達式忽略URL

https://www.reddit.com/r/starwars/comments/12345 

/r/starwars 

r/starwars 

我想寫正則表達式匹配底部的2個字符串,但忽略頂部的一個。我試圖使用正則表達式LookBehind,但一直未能得到它的工作。我現在正則表達式是:

(?<=[^m])\/?r\/([a-zA-Z_])+ 

我本來以爲^ M將忽略任何字符串從「.com」之間

+1

[this regex](https://regex101.com/r/ph2Fog/1)? – TheLostMind

回答

1

你不應該需要向後看或任何幻想開始與「M」爲了這。相反,使用^和$(開始和結束字符串運算符)。嘗試像這樣的正則表達式:

var pattern = /^\/?r\/[A-Za-z_]+$/; 
pattern.test('https://www.reddit.com/r/starwars/comments/12345'); // false 
pattern.test('/r/starwars/comments/12345'); // false 
pattern.test('/r/starwars'); // true 
pattern.test('r/starwars'); // true 
+0

謝謝。我研究了你的例子,最後使用了以下代碼: '/ \ /?r \/\ w +(?!\ S)/' – bertmaclin