이전에 텍스트 기반 데이터를 다룬 적이 있다면 지저분한 데이터 세트가 어떻게 당신의 삶을 비참하게 만들 수 있는지에 대해 전혀 낯선 사람이 아닐 것입니다. 전 세계 데이터의 대부분이 비구조적 형태로 제공된다는 사실은 조만간 알려야 할 추악한 진실입니다. 이 게시물에서는 RegEx(정규 표현식)가 무엇인지, RegEx로 무엇을 할 수 있는지, 몇 가지 구체적인 예에 대해 설명합니다.
"정규식(때때로 유리식이라고도 함)은 검색 패턴을 정의하는 일련의 문자로, 주로 문자열과의 패턴 일치 또는 문자열 일치, 즉 "찾기 및 바꾸기"와 같은 작업에 사용하기 위한 것입니다. 이 개념은 1950년대 미국 수학자 Stephen Kleene이 정규 언어에 대한 설명을 공식화하고 Unix 텍스트 처리 유틸리티인 ed(Unix 운영 체제용 라인 편집기), 편집기 및 grep과 함께 일반적으로 사용되면서 생겨났습니다. (정규 표현식과 일치하는 행에 대한 일반 텍스트 데이터 세트를 검색하기 위한 명령줄 유틸리티), 필터(스트림을 처리하고 다른 스트림을 생성하는 컴퓨터 프로그램 또는 서브루틴). 이것은 정규식을 정의하는 데 사용되는 Wikipedia에서 발췌한 것입니다.
모호한 것처럼 들리지만 개념은 실제로 이해하기 매우 쉽습니다. Netflix에서 특정 영화를 찾고 싶다고 가정해 봅시다. 아마도 영화 제목 또는 제목의 일부로 검색할 것입니다. 그러면 Netflix의 검색 엔진이 검색 상자에 입력한 내용과 제목이 일치하는 영화를 찾아 검색 키워드와 일치하는 검색 결과 목록을 표시합니다. 마찬가지로 정규식은 찾고자 하는 영화를 검색하는 데 사용한 단어와 같습니다.
기본적으로 정규식은 텍스트 문자열 전체에서 요소를 일치시키거나 요소를 교체하는 데 사용할 수 있는 텍스트 패턴입니다. RegEx는 텍스트 기반 데이터를 정리하는 데 매우 유연하기 때문에 생각보다 강력할 수 있습니다.
요컨대, 정규식은 HTML 태그를 일치시키고 HTML 문서에서 데이터를 추출하는 데 사용할 수 있습니다.
일반적인 정규식 사용 사례
정규식은 이메일, 전화번호, 우편번호 등과 같은 일반적인 텍스트 패턴을 일치시키는 데 정말 유용합니다.
RegEx를 사용하여 이메일 추출
RegEx를 사용하여 전화번호 추출하기
추출된 데이터 구체화(콘텐츠 교체, 접두사 추가, ..)
HTML은 실제로 문자열로 구성되며 정규 표현식을 강력하게 만드는 것은 정규 표현식이 다른 문자열과 일치할 수 있다는 것입니다. HTML을 파싱하기 위해 정규식을 사용하면 종종 닫는 태그가 누락되거나 일부 태그가 일치하지 않는 등의 실수가 발생할 수 있습니다. 프로그래머는 PHPQuery, BeautifulSoup, html5lib-Python 등과 같은 다른 HTML 파서를 사용할 가능성이 더 큽니다. HTML 태그와 빠르게 일치하는 이 매우 편리한 도구를 사용하여 HTML 문서의 패턴을 식별할 수 있습니다. 모든 프로그래머 또는 웹 데이터를 추출하려는 사람은 이 도구가 작업 효율성과 생산성을 크게 향상시킬 수 있는 방법에 대한 정규식에 대해 배울 것을 강력히 권장합니다.
HTML 태그와 일치하는 정규식의 몇 가지 예를 살펴보겠습니다.
HTML 태그 일치를 위한 정규식:
<(.)>.?|<(.) />
<(\S?)[^>]>.?</\1>|<.*?/>
모든 TD 태그와 일치하는 정규식:
<td\s.>\s.<\/td>
와 일치하는 정규식:
<[a-zA-Z]+(\s+[a-zA-Z]+\s=\s("([^"])"|'([^'])'))\s/ >
이러한 정규 표현식을 이용하여 다양한 HTML 태그를 매칭할 수 있으므로 HTML 문서에서 데이터를 쉽게 추출할 수 있습니다.
이 정규식 치트 시트에서 RegEx에 대한 빠른 참조를 확인할 수도 있습니다.
또한 올바른 표현식을 생성하거나 확인하는 데 도움이 되는 몇 가지 인기 있는 온라인 RegEx 테스트 및 디버깅 도구가 있습니다.
정규식 테스터
정규식 101: 정규식 빌드, 테스트 및 디버그
RegExr: RegEx 학습, 구축 및 테스트
웹 데이터를 스크랩하고 다시 포맷해야 하는 경우 Octoparse 8을 다운로드하세요! 사용할 준비가 된 무료 RegEx 도구가 있습니다. 소프트웨어를 열고 사이드 바 메뉴에서 "도구" 아이콘을 클릭하기만 하면 됩니다.
아래 HTML에서 등급 정보를 얻으려면 Octoparse의 RegEx 도구를 사용하여 근처에 있는 "Start with" 및 "End with" 문자를 사용하여 요소를 일치시킬 수 있습니다.
정규식 위치
소스 코드에서 이메일을 추출하려면(특히 다른 구조를 공유하는 일부 URL의 경우) 아래 RegEx를 사용하여 이메일을 직접 일치시킬 수 있습니다. 도구를 사용하여 바로 자신의 정규식을 테스트하고 디버그할 수 있습니다.
([a-zA-Z0-9_.-]@[a-zA-Z0-9_.-])
원래 https://www.octoparse.com/blog/using-regular-expression-to-match-html/?utm_source=sale2022&utm_medium=RegExTool&utm_campaign=velog로 게시됨