2016-12-27 4 views
0

Пытается написать регулярное выражение для reddits subreddits. Мое регулярное выражение заменит имя subreddit ссылкой, но я бы хотел, чтобы он игнорировал ссылку внутри URL-адреса, который уже отображается. Например, допустим, у меня есть следующие 3 строки.Regex игнорировать строку в URL-адрес

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

/r/starwars 

r/starwars 

Я пытаюсь написать регулярное выражение, которое будет соответствовать двум нижним строкам, но игнорировать верхний. Я пытаюсь использовать regex LookBehind, но не смог заставить его работать. Мой текущий регулярное выражение:

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

Я бы подумал, что^м будет игнорировать любую строку, начиная с «т» из «.com»

+1

Как насчет [this regex] (https://regex101.com/r/ph2Fog/1)? – TheLostMind

ответ

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 
+0

Спасибо. Я отработал ваш пример и закончил использование следующих '/ \ /? R \/\ w + (?! \ S) /' – bertmaclin

 Смежные вопросы

  • Нет связанных вопросов^_^