ホームページ  >  記事  >  バックエンド開発  >  Go 言語の文字列処理と正規表現

Go 言語の文字列処理と正規表現

王林
王林オリジナル
2023-08-25 11:21:14758ブラウズ

Go 语言中的字符串处理与正则表达式

Go 言語の文字列処理と正規表現

Go 言語は厳密に型指定された言語であり、文字列が一般的に使用されるデータ型です。プログラム開発の過程において、文字列処理は非常に重要な部分です。この記事では、Go言語における文字列処理の基本操作と正規表現の使い方を紹介します。

1. 文字列処理

Go 言語の文字列型は不変のバイト シーケンスであり、一度作成されるとその値は変更できません。文字列は二重引用符またはバッククォーテーションを使用して表現できます。エスケープ シーケンスは、改行文字を表す
などの二重引用符で囲まれた文字列内で使用できます。バックティック文字列には、複数行のテキストやエスケープ文字を含む任意の文字を含めることができます。

  1. 文字列接続

Go 言語では演算子を使用して 2 つの文字列を接続できます。例:

str1 := "Hello"
str2 := "world"
str3 := str1 + " " + str2
fmt.Println(str3) // output: Hello world
  1. 文字列分割

strings パッケージの Split() 関数を使用して、文字列を分割できます。例:

str := "Hello world"
arr := strings.Split(str, " ")
fmt.Println(arr) // output: [Hello world]
  1. 文字列置換

文字列パッケージの Replace() 関数を使用して文字列を置換できます。例:

str := "Hello world"
newStr := strings.Replace(str, "world", "Go", 1)
fmt.Println(newStr) // output: Hello Go
  1. 文字列検索

文字列パッケージの Index() 関数または Contains() 関数を使用して文字列を検索できます。例:

str := "Hello world"
index := strings.Index(str, "world")
fmt.Println(index) // output: 6
isContains := strings.Contains(str, "Hello")
fmt.Println(isContains) // output: true
  1. 文字列の大文字と小文字の変換

文字列パッケージの ToUpper() 関数と ToLower() 関数を使用して、文字列の大文字と小文字を変換できます。例:

str := "Hello WORLD"
newStr1 := strings.ToUpper(str)
newStr2 := strings.ToLower(str)
fmt.Println(newStr1) // output: HELLO WORLD
fmt.Println(newStr2) // output: hello world

2. 正規表現

正規表現は文字列を記述するために使用されるツールであり、文字列が特定のパターンに一致するかどうかを判断できます。 Go 言語には、正規表現を使用して文字列を照合および操作できる組み込みの正規表現パッケージがあります。

  1. 正規表現の基本メタキャラクター
  • .: 任意の文字に一致
  • d: [0 -9]# に相当する数値に一致
  • ##D: 数字以外の任意の文字に一致します。
  • 1
  • w: 文字と数字に一致します。In [a-zA-Z0- 9]
  • W: 文字と数字以外の任意の文字に一致します。
  • 2##s に相当します。: スペースやタブなどの空白文字に一致します。
  • S: 空白以外の文字と一致します
  • ^: 文字列の先頭と一致します
  • $: 文字列の末尾と一致します
  • []:括弧内の任意の文字と一致します
  • [^]: 括弧内の文字を除く任意の文字と一致します
正規表現関数
MatchString(pattern string, s string) bool: s string がパターン正規表現 pattern に一致するかどうかを判断します
  • FindString(pattern string, s string) string: pattern 正規表現 pattern に一致する最初の部分文字列を検索しますs 文字列内で部分文字列を返します。
  • FindAllString(pattern string, s string, n int) []string: in s 文字列内のパターン正規表現パターンに一致するすべての部分文字列を検索し、文字列スライスを返します。 n は一致の最大数を表します。
  • ReplaceAllString(pattern string, s string, repl string) string: repl string を使用して、パターン正規表現パターンに一致する s string 内のすべての部分文字列を置換し、置換された文字を返します。
  • #正規表現の例
    package main
    
    import (
        "fmt"
        "regexp"
    )
    
    func main() {
        str1 := "abc123"
        str2 := "Hello world"
        pattern1 := `d+`
        pattern2 := `wo..d`
        isMatch1, _ := regexp.MatchString(pattern1, str1)
        isMatch2, _ := regexp.MatchString(pattern2, str2)
        fmt.Println(isMatch1) // output: true
        fmt.Println(isMatch2) // output: true
        
        re := regexp.MustCompile(pattern1)
        match1 := re.FindString(str1)
        fmt.Println(match1) // output: 123
        
        matchAll1 := re.FindAllString(str1, -1)
        fmt.Println(matchAll1) // output: [123]
        
        repl := re.ReplaceAllString(str1, "456")
        fmt.Println(repl) // output: abc456
        
        re2 := regexp.MustCompile(pattern2)
        match2 := re2.FindString(str2)
        fmt.Println(match2) // output: world
    }
  1. 概要
この記事では、Go 言語での文字列処理と正規表現の使用方法を紹介します。文字列処理には、連結、分割、置換、検索、大文字と小文字の変換などの基本的な操作が含まれます。正規表現を使用すると、特定のパターンに一致する文字列の照合や操作を行うことができます。これらの操作をマスターすると、文字列の処理が容易になり、プログラムの開発効率が向上します。

0-9
  1. a-zA-Z0-9

以上がGo 言語の文字列処理と正規表現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。