正则表达式忽略URL
问题描述:
串尝试写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”之间
答
你不应该需要向后看或任何幻想开始与“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
[this regex](https://regex101.com/r/ph2Fog/1)? – TheLostMind