2012-01-17 3 views
0

하이픈 사이의 단어와 일치하는이 정규식을 해킹하여 구분하여 1 자의 기사는 제외합니다. 이 단어가 별도로 필요한 이유는 Blogger가 39 자의 URL을 중지하고 단어를 깨지 않기 때문입니다. 이것은 지금까지 작동합니다정규 표현식을 사용하여 Blogger (blogspot)와 일치하십시오.

^((([a-zA-Z0-9]{2,39})-)+)(?:([a-zA-Z0-9]{1})-)((([a-zA-Z0-9]{2,39})-)+){2,39}$

/wishing-you-a-very-merry-christmas-and-a-happy-new-year.html
일치에 대해 테스트 : wishing-you-a-very-merry-christmas-and-
교체 문자열 : $1 (작동하지 않습니다!)이 결과 :

나는 1을 얻는 방법 편지를 결과 정규식에 인쇄하지 않으시겠습니까? 그리고 내 결과에서 마지막으로 -을 테스트하고 제거하려면 어떻게해야합니까?

+0

나는 당신의 패턴에 의해 혼란 스러워요도 참조 문제

(?<=[/-]|^)[^-]-|-[^-](?=[-./]|$) 

없다 . 그럼에도 불구하고 그 패턴은 슬래시로 시작하는 문자열과 일치 할 수 있다고 생각하지 않습니다. 첫 번째 문자로 ASCII 영숫자와 일치하며 슬래시와 일치하지 않습니다. 또한 캡처 그룹 중 일부를 제거하는 데 도움이됩니다 (7 점을 계산했습니다). – Kobi

+1

불연속적인 텍스트를 어떻게 매치 할 것인지 묻는다면, 그렇게 할 수 없습니다. 전체 슬러그를 추출한 다음 빈 문자열로 제외 할 단어를 대체하십시오. – tripleee

답변

1

하나의 정규식으로 만들 수 없습니다.

길이가 최대 39 자이고 끝 부분이 - 인 부분은 문제가되지 않습니다.

^\/?([\w-]{3,39})(?<!-).* 

on Regexr

(?<!-) 문자열이 하이픈으로 종료되지 않도록 보장하는 lookbehind 주장입니다 참조하십시오.

그러나이 자체 1.

의 길이와 같은 시간 문자열에서 제거 할 수는 here on Regexr

+0

고마워요 - 그 URL이 완벽하게 일치하고 "... and"에 멈추지 만 다른 URL에서는 정확하게 39자를 멈 춥니 다 - 어떻게 마지막 단어 (하이픈으로 정의)에서 멈 춥니 까? – DSWP

관련 문제