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

 

'golang' 카테고리의 다른 글

golang init 함수 호출 시점  (0) 2024.07.05
golang 메모리 패딩 고려한 구조체 최적화  (0) 2024.07.05
golang json gojay 라이브러리  (0) 2024.07.05
golang Struct Embedding  (1) 2024.07.05
golang file scanner  (0) 2024.07.05