url의 path 부분 중에서 / 두개 이상인 넘을 하나로 치환 하려고 합니다. 그런데 path 부분에 http:// 같은 프로토콜이 들어가 있는 주소가 있어서 이건 제외하려고 합니다.
http:// 는 아닌 / 두개 이상을 찾는 걸 정규식으로 가능할까요?
그냥 한번에 다 변환후에 http:/ --> http:// 로 다시 변환하면 안되는 상황인가요?
----- 오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
Perl에서는
(?<!http:)\/\/
vim에서는
\(http:\)\@<!\/\/
- jick
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
그냥 한번에 다
그냥 한번에 다 변환후에 http:/ --> http:// 로 다시 변환하면 안되는 상황인가요?
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
zero-length negative lookbehind...
Perl에서는
이렇게 쓰시면 됩니다.
"?<!..."는 해당 위치의 바로 앞에 ...에 해당하는 패턴이 나오지 않을 경우만 매치시키라는 명령입니다.
vim에서는
이렇게 쓰시면 될 것 같습니다. (괄호 앞에 \를 붙여야 되는 게 맞나... 지금 쓰는 컴에 vim이 없어서 가물가물하네요.)
- jick
댓글 달기