Regex : 줄바꿈 포함.. 그러나 왜 안돼??

맞춤법에 무지한 이들을 살짝 놀리느라, 또는 그저 재미를 위하느라, 요즘 가끔, ‘외않되?’라는 표현이 쓰이기도 하더라. ‘외않되’라.. 재밌기도 하고, 씁쓸하기도 하다.
20년 전에 비해서 ‘글’을 쓰는 사람이 기하급수로 늘었기 때문에, 그만큼 글의 질은 떨어질 수 밖에 없고, 당연히 맞춤법을 제대로 지키는 글은 보기가 힘들어졌다.
저 정도는 맞춤법도 아니고, 그저 기본 상식인데… 요즘 교육으로는 저 만큼의 지식을 기대하기도 어렵나보다.

이런 무지한 상황은, 나같은 문외한이 쓴 글에선 물론이거니와, 글로써 밥벌이를 하는 이들에게도 마찬가지. 요즘은 기사를 읽다가 짜증나는게 일상다반사가 돼 버렸다.

왜 또 시작부터 삼천포로..

다시 또 살짝 삼천포로 가보면, 요즘 글을 ‘구텐베르크’로 쓰고 있는데, 이전 편집기에 비해 훨씬 편해지긴 했다. 다만.. 아직 익숙해지질 않았고, 그동안은 직접 HTML 편집을 사용하는 적이 많았었는데, 그 부분이 아직 손에 익지를 않았단 점이 문제.
여기에 살짝 줄을 넣고 싶었는데, 그걸 하려다가 또 삼천포를 방문하게 됐네..


자.. 이 글의 시작은 ics 파일을 편집하는데서 비롯됐다.
NBA 홈페이지에서 .ics 파일을 받아서 살짝 편집을 하고자 편집기로 열고, 해당 부분을 Regex 로 선택하여 삭제를 하려 했다. 지워버리려는 부분은 다음과 같았다.

.ics 중에서..

DESCRIPTION:Watch live on or on NBA League Pass | Follow us at @Pacers | J
oin in #Pacers\n\nBuy Tickets\nhttps://l.ecal.com/1/QvJxymEzY48/5b7ed2f9f7
f200c2718b4568\n\nSeason Tickets\nhttps://l.ecal.com/1/s8hCuhDK9-H/5b7ed2f
9f7f200c2718b4568\n\nShop\nhttps://l.ecal.com/1/IBNHRNdIh7m/5b7ed2f9f7f200
c2718b4568\n\nLatest News\nhttps://l.ecal.com/1/EMycM444GQC/5b7ed2f9f7f200
c2718b4568\n\nFacebook\nhttps://l.ecal.com/1/oWRMri7BQm6/5b7ed2f9f7f200c27
18b4568\n\nTwitter\nhttps://l.ecal.com/1/rnvq_jyTD24/5b7ed2f9f7f200c2718b4
568\n\nInstagram\nhttps://l.ecal.com/1/I7m0eJpqd8O/5b7ed2f9f7f200c2718b456
8\n\nManage my ECAL\nhttps://support.ecal.com

DESCRIPTION:Watch ~ support.ecal.com 까지 선택을 하려하고, 중간에 줄바꿈이 있으니 Regex 는 다음과 같이 하면 될 터였다.

DESCRIPTION:Watch(.|\n)*?support\.ecal\.com

그런데 되지 않는다. Kate, Atom, Vim 모두 되질 않는다.
그야말로, ‘외않되’????
저걸 한 게 바로 자기 전, 밤 12시가 넘은 시각이었기에, 뭔가 두뇌 활동이 원활하지 못한 시간이었던 게 실패의 이유였을 수도 있다. (핑계지..)

조금 전, 다시 그 파일을 열어봤다. Vim 으로 열고 뭔 문제가 있는지 보려는데, Vim 아래쪽 정보행에 ‘[도스]’ 라는 문구가 보였다.
도스?? 웬 도스?? 뭔 갑자기 도스??

하다가 문득, 아.. 도스!
NBA 에서 받은 텍스트파일이 UTF8 이긴 했지만, DOS 형식, 즉 LF 가 아니라 CRLF 기 때문에 저 Regex 가 통하질 않은 거였다.
다시 살펴보니, Atom 엔 화면 아래쪽에 LF/CRLF 로 표시를 해주고 있었고, Kate 엔 따로 표시되는 부분이 없다.
따라서, 제대로 하려면,

DESCRIPTION:Watch(.|\r\n)*?support\.ecal\.com

이렇게 해야 한다. 그런데, Kate 에선 Lazy Quantifier 를 지원하지 않는가보다.

또는, 이렇게 해도 된다.

Watch live on[\w\W]*?support\.ecal\.com

또, Vim 에선 좀 더 다르게 써줘야 한다. Vim 의 Lazy Quantifier 는 *? 가 아니고 {-} 다. (이건 몰랐었네…)

Vim 에서는,

\vDESCRIPTION:Watch(.|\n){-}support\.ecal\.com

이게 정답이다. 이걸 알아내느라 소비한 시간이 꽤 되는군.. 이 내용은 다음 글에.


크리에이티브 커먼즈 라이선스
이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
Tags:
One Comment

안녕하세요. 글 남겨주셔서 고맙습니다.