정규식 많이 익숙해 졌나요? 어떻게 활용하느냐는 개발자의 몫이고 개발자의 능력입니다 처음에 언급했듯이 각 언어마다 정규식은 조금씩 다릅니다 그리고 정규식을 활용해서 검색 및 치환하는 방법은 아예 다르죠 본 강좌를 통해 정규식이 어떤 것이고 어떤 일들을 할 수 있는지 기본적인 개념을 습득했기를 바랍니다 실제 업무에서 아 여기에서는 정규식이 필요하겠구나! 라는 필요성을 느낄 수만 있다면 사용하는 것은 찾아보면 되기 때문에 충분하다고 생각합니다 더이상 정규식을 두려워 하지 않길 바랍니다 화이팅!
예제1> URL의 프로토콜을 찾으세요 예문 http://www.ecount.com/ https://mail.ecount.com/ ftp://ftp.ecount.com/ 결과 http://www.ecount.com/ https://mail.ecount.com/ ftp://ftp.ecount.com/ 정규식 \w+(?=:\/\/) http, https, ftp와 같은 것이 URL의 프로토콜입니다 그런데 이를 기존대로 \w+:// 로 검색하면 프로토콜만 찾아지는게 아니라 일부URL이 포함되어 검색됩니다 패턴을 찾을 때는 사용하지만 검색결과로 반환하고 싶지 않을 때 전방탐색과 후방탐색을 사용합니다 전방탐색(?=)은 일치 영역을 발견해도 그 값을 반환하지 않고 그 전방의 일치하는 문자열만 반환합니다 예제2> 금액..
예제1> 실수로 두 번 입력된 단어를 찾으세요 예문 This is a block of of text, several words here are are repeated, and and they should not be. 결과 This is a block of of text, several words here are are repeated, and and they should not be. 정규식 \b(\w+)\b\s+\b\1\b 이러한 패턴을 찾으려면 앞에서 찾은 문자열을 가리킬 수 있어야 합니다 이러한 참조를 역참조라 합니다 참조하려고 하는 패턴은 하위 표현식 () 로 묶어야 합니다 역참조는 마치 변수와 비슷하게 생각하면 좋습니다 역참조(\순서)는 앞서 나온 하위 표현식을 지칭하며 해당 표현식에 해당하는..
여태까지는 하나의 정규 표현식이 하나의 문자에 대응했습니다 그래서 같은 패턴의 문자가 반복되면 반복되는 수만큼 문자를 쓸 수밖에 없었습니다 예를들어, 나열된 3개의 숫자는 [0-9][0-9][0-9] 이런 식으로 찾아야 합니다 매우 비효율적이지 않나요? 반복되는 문자열을 더욱 쉽게 찾을 수 없을까요? 예문 Send personal email to ben@ecount.com. The URL is http://www.ecount.co.kr/ If I want secure access, https://www.ecount.co.kr is valid. httpssss://www.ecount.co.kr is invalid url. ecountecountecountecountecount ecountecountecou..
메타문자 설명 \n 줄바꿈 \r 캐리지 리턴 \t 탭 \d 숫자 [0-9] \w 대소문자와 밑줄 포함하는 모든 영숫자 [a-zA-Z0-9_] \s 모든 공백 문자 [\f\n\r\t\v] \b 단어 경계 x|y x 또는 y 에 대응 문자열 일괄 작업시에 많이 사용되는 것이 바로 공백과 줄바꿈입니다 이는 위와 같이 메타문자를 사용하여 정규식으로 검색이 가능합니다 또한 숫자나 문자를 문자집합이 아닌 메타문자로 검색이 가능합니다 예제1> 모든 공백을 찾으세요 예문 "ab", "cd", "ef" "g"," h " 결과 "ab", "cd", "ef" "g"," h " 정규식 \s
예문 sales1.xls orders3.xls sales2.xls apac1.xls na1.xls na2.xls sa1.xls 예제1> (2또는 3).xls 형태의 문자열을 찾으세요 결과 sales1.xls orders3.xls sales2.xls apac1.xls na1.xls na2.xls sa1.xls 정규식 [23]\.xls 괄호 []를 사용하여 문자집합에 포함되는 문자 하나를 일치시킬 수 있습니다 괄호안에 일치시킬 문자열들을 쭈욱 나열하면 됩니다 그런데 만약 숫자라던지 알파벳 소문자, 대문자 이런 문자를 찾고 싶으면 0123456789나 abcdefg... 이렇게 다 써야할까요? 예제2> s(숫자) 형태의 문자열을 찾으세요 결과 sales1.xls orders3.xls sales2.xls apa..