Go で正規表現を使用して一致を検索
Go を使用する場合、正規表現を使用して文字列内の特定のパターンと一致させる必要が生じる場合があります。 regexp パッケージを使用してこれを実現する方法は次のとおりです。
質問:
指定された文字列内の指定された正規表現に一致するものをすべて見つけて、それらを文字列として返すにはどうすればよいですか? array?
例:
文字列: "{city}、{state} {zip}"。目標は、中括弧で囲まれたすべての部分文字列を含む配列を返すことです。
初期試行:
正規表現パッケージを使用して、次のコードを試したことがあるかもしれません:
r := regexp.MustCompile("/({[^}]*})/") matches := r.FindAllString("{city}, {state} {zip}", -1)
ただし、このコードは空のスライスを返し、一致するものがなかったことを示します。
解決策:
この問題を解決するには、次の手順を検討してください:
すべての一致の場合:
r := regexp.MustCompile(`{[^{}]*}`) matches := r.FindAllString("{city}, {state} {zip}", -1) fmt.Println(matches) // Prints: [{city}, {state}, {zip}]
キャプチャされたパーツの場合のみ:
r := regexp.MustCompile(`{([^{}]*)}`) matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1) for _, v := range matches { fmt.Println(v[1]) // Prints: city, state, zip }
以上がGo 文字列内のすべての正規表現一致を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。