2016-12-27 1 views
0

reddits 하위 참조에 정규 표현식을 쓰려고합니다. 내 정규식은 서브 디렉토리 이름을 링크로 대체하지만 이미 표시된 URL 내의 링크를 무시하고 싶습니다. 예를 들어 다음과 같은 3 개의 문자열이 있다고 가정 해 보겠습니다.URL의 문자열을 무시하는 정규식

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

/r/starwars 

r/starwars 

것은 나는 바닥이 문자열을 일치하지만 상단을 무시합니다 정규식을 작성하는 것을 시도하고있다. 정규식 LookBehind 사용하려고하지만 작동시키지 못했습니다. 나의 현재 정규식은 다음과 같습니다 나는^m 당신은 볼 숨김 또는 공상 아무것도 필요가 없습니다

+1

[this regex] (https://regex101.com/r/ph2Fog/1)는 어떨까요? – TheLostMind

답변

1

'.COM'에서 'm'로 시작하는 문자열을 무시하는 것이라고 생각했을 것이다

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

이것 때문에. 대신^및 $ (시작 및 끝 문자열 연산자)를 사용하십시오. 다음과 같은 정규식을 사용해보십시오.

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

관련 문제