Golang 정규표현식 모음 CommonRegex 라이브러리 알아보기

오늘은 Golang으로 정규표현식의 모음집인 CommonRegex 라이브러리를 알아보려 합니다.

CommonRegex 설치

우선 Golang의 환경을 구성하기 위해 https://golang.org/dl/ 에서 윈도우, 리눅스, 맥에서 설치 프로그램을 내려받을 수 있습니다.

맥에서 brew로 쉽게 설치할 수 있습니다.

brew install go

우분투에서도 apt로 쉽게 설치할 수 있습니다.

sudo apt-get install golang-go

맥에서 Golang의 버전을 올리려면 brew를 이용합니다.

brew upgrade go

우분투에서도 Golang의 버전을 올리려면 backports 저장소를 등록하고 apt를 이용합니다.

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install golang-go

go get으로 CommonRegex 패키지를 설치합니다.

go get github.com/mingrammer/commonregex

홈의 go 폴더에 CommonRegex 소스코드와 패키지 파일이 생성됩니다.

예제

package main

해당 소스코드를 실행 파일로 인식하게 해주도록 main이라고 선언합니다.

import (
	"fmt"

	"github.com/mingrammer/commonregex"
)

fmt와 commonregex를 가져옵니다.

func main() {
	textString := `Jan 9th 2012 5:00PM 4:00 $9,000 test@gmail.com www.example.com 127.0.0.1 8A-99-D9-96-89-5B https://github.com/user/repo.git (519)-236-2723x341 #ffffff`

여러 정보들이 포함된 문자열이 담긴 변수를 만듭니다.

	date := commonregex.Date(textString)
	fmt.Println(date)

	time := commonregex.Time(textString)
	fmt.Println(time)

	price := commonregex.Prices(textString)
	fmt.Println(price)

	email := commonregex.Emails(textString)
	fmt.Println(email)

	link := commonregex.Links(textString)
	fmt.Println(link)

	git := commonregex.GitRepos(textString)
	fmt.Println(git)

	phone := commonregex.PhonesWithExts(textString)
	fmt.Println(phone)

	ip := commonregex.IPs(textString)
	fmt.Println(ip)

	mac := commonregex.MACAddresses(textString)
	fmt.Println(mac)
}

날짜, 시간, 가격, 이메일, 링크, 깃 주소, ip 등의 정보들을 가려낼 수 있는 정규표현식 패턴으로 각자의 정보들을 추출할 수 있습니다.

해당 함수들은 regexp의 MustCompile로 분석해둔 일정 패턴으로 일치되는 문자열을 반환합니다.

Written on October 30, 2019