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

Regex to ignore string in URL

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

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