如何在 Go 中使用正規表示式解析 CSV 檔案? 1. 導入 regexp 庫。 2. 使用 regexp.MustCompile 建立一個符合 CSV 行欄位的正規表示式。 3. 使用 regexp.Split 函數將 CSV 行拆分為一個字串陣列。 4. 實戰案例展示如何使用正規表示式解析包含人員資料的 CSV 檔案。
如何在Go 中使用正規表示式解析CSV 檔案
正規表示式(regex)是一種強大工具,用於匹配和處理文字。在 Go 中,我們可以使用 regexp
套件處理 CSV 檔案。
1. 導入庫
import ( "fmt" "regexp" )
2. 匹配CSV 行
使用regexp.MustCompile
建立一個正規表示式模式,它符合CSV 行中的欄位:
re := regexp.MustCompile(`^([^,]*),([^,]*),(.+)$`)
此模式將每個欄位與三個捕獲組匹配。
3. 解析CSV 行
使用regexp.Split
函數將CSV 行拆分為一個字串陣列:
line := "John,Doe,jdoe@example.com" fields := re.Split(line, -1)
fields
陣列現在包含三個元素:姓名、姓氏和電子郵件地址。
4.實戰案例
讓我們使用正規表示式解析包含人員資料的 CSV 檔案:
package main import ( "fmt" "io/ioutil" "regexp" ) func main() { // 读取 CSV 文件 data, err := ioutil.ReadFile("people.csv") if err != nil { fmt.Println(err) return } // 使用正则表达式解析 CSV 行 re := regexp.MustCompile(`^([^,]*),([^,]*),(.+)$`) lines := strings.Split(string(data), "\n") for _, line := range lines { fields := re.Split(line, -1) if len(fields) != 4 { fmt.Println("无效的行:", line) continue } // 打印个人信息 fmt.Printf("%s %s (%s)\n", fields[1], fields[2], fields[3]) } }
以上是如何在 Go 中使用正規表示式解析 CSV 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!