ホームページ > バックエンド開発 > Golang > Goの正規表現を使用して中括弧で囲まれたすべての部分文字列を抽出するにはどうすればよいですか?

Goの正規表現を使用して中括弧で囲まれたすべての部分文字列を抽出するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-25 09:56:31
オリジナル
876 人が閲覧しました

How to Extract All Substrings Enclosed in Curly Braces Using Go's Regex?

Go で正規表現を使用してすべての文字列一致を検索する

Go で文字列を操作する場合、多くの場合、特定のパターンまたは部分文字列を検索する必要があります。正規表現は、テキストを照合して操作するための強力な方法を提供します。一般的なタスクの 1 つは、特定のパターンに一致するものをすべて検索し、それらをスライスまたは配列に保存することです。

問題ステートメント:

部分文字列を囲む中かっこを含む文字列が指定されたとします。の場合、目標は、中括弧の間にあるすべての部分文字列を抽出し、配列として返すことです。たとえば、次の文字列が指定された場合:

{city}, {state} {zip}
ログイン後にコピー

配列を返す必要があります。内容:

  • {都市}
  • {州}
  • {zip}

解決策:

これを実現するには、Go の正規表現パッケージを利用できます。ただし、正規表現を定義するときに注意すべき重要な点がいくつかあります。

  • 正規表現区切り文字を避ける: Go では、正規表現はスラッシュ (/) で囲まれません。
  • 生の文字列リテラルを使用する: 複雑な正規表現を定義する場合パターンを使用する場合は、生の文字列リテラル (バッククォート `` をプレフィックスとして付ける) を使用して、単一のバックスラッシュで特殊文字をエスケープすることをお勧めします。
  • グループのキャプチャ: グループのキャプチャを使用して、パターンの特定の部分を抽出できます。マッチ。ただし、この問題については、正規表現を簡素化し、正規表現の使用を避けることができます。

更新された Go コードは次のとおりです:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    str := "{city}, {state} {zip}"

    // Define the regular expression pattern
    r := regexp.MustCompile(`{[^{}]*}`)

    // Find all matches
    matches := r.FindAllString(str, -1)

    // Print the matches
    for _, match := range matches {
        fmt.Println(match)
    }
}
ログイン後にコピー

正規表現の内訳:

  • {[^{}]*}: で囲まれた任意の部分文字列と一致します。中括弧。

出力:

  • {city}
    {state}
    ログイン後にコピー

以上がGoの正規表現を使用して中括弧で囲まれたすべての部分文字列を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート