正则表达式忽略URL中的字符串

时间:2016-12-27 07:08:34

标签: regex regex-negation regex-lookarounds

尝试为reddits subreddits编写正则表达式。我的正则表达式将用链接替换subreddit名称,但我希望它忽略已经显示的URL中的链接。例如,让我说我有以下3个字符串。

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

/r/starwars

r/starwars

我试图编写匹配底部2个字符串的正则表达式但忽略顶部字符串。我尝试使用正则表达式LookBehind但是还没有能够让它工作。我目前的正则表达式是:

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

我原以为^ m会忽略以&#39; m&#39;开头的任何字符串。来自&#39; .com&#39;

1 个答案:

答案 0 :(得分:1)

你不应该为此寻找后顾之忧或任何想象。相反,使用^和$(字符串的开头和结尾运算符)。尝试使用正则表达式:

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
相关问题