golang

golang 정규식 문자열 치환

kimbs0301 2024. 7. 5. 17:18

golang 정규식 사용으로 문자열 치환 하기

 

텍스트 파일 내부 문자열 치환

 

file1.txt

더보기

User.data : ID=#{id}, EMAIL=#{email}
Account.data : AID=#{id}, EMAIL=#{email}
Member.data : MID=#{id}, EMAIL=#{email}

 

main.go

// Package main
package main // import "example.com/regex/main"

import (
	"bufio"
	"fmt"
	"os"
	"regexp"
	"runtime"
	"time"
)

// main
func main() {
	f, err := os.Open("file1.txt")
	if err != nil {
		fmt.Println(err)
		return
	}

	fs := bufio.NewScanner(f)
	fs.Split(bufio.ScanLines)

	r, _ := regexp.Compile("#\\{(\\w+)\\}")

	for fs.Scan() {
		text := fs.Text()

		id := "kimbs"
		email := "kimbs@email.com"

		replaced := r.ReplaceAllStringFunc(text, func(s string) string {
			if "#{id}" == s {
				return id
			}
			if "#{email}" == s {
				return email
			}
			return s
		})
		fmt.Println(replaced)
	}

	f.Close()
}

 

실행 결과>

더보기

User.data : ID=kimbs, EMAIL=kimbs@email.com
Account.data : AID=kimbs, EMAIL=kimbs@email.com
Member.data : MID=kimbs, EMAIL=kimbs@email.com