Go言語のReplaceで文字列を置換するサンプルです。
目次
サンプル | Replaceとは |
文字列を置き換える(Replace) | |
指定した文字を削除する(Replace) | |
正規表現で置き換える(ReplaceAllString) | |
すべての文字を置き換える(ReplaceAll) |
Replaceとは
func Replace(1.文字列, 2.置換前の文字列, 3.置換後の文字列, 4.置き換える回数) string |
- Replaceは対象の文字列を指定した文字列で置き換えます。
- 1つめの引数は対象の文字列です。
- 2つめの引数の文字列から3つめの引数の文字列に置き換えます。
- 4つめの引数は置き換える回数です。-1にすると全て置き換えます。
- 戻り値はString型です。
文字列を置き換える(Replace)
package main
import (
"fmt"
"strings"
)
func main() {
str1 := "ああーああ"
fmt.Println(strings.Replace(str1, "あ", "A", 1)) // Aあーああ
fmt.Println(strings.Replace(str1, "あ", "A", 2)) // AAーああ
fmt.Println(strings.Replace(str1, "あ", "A", 3)) // AAーAあ
fmt.Println(strings.Replace(str1, "あ", "A", -1)) // AAーAA
fmt.Println(strings.Replace(str1, "ああ", "A", 1)) // Aーああ
fmt.Println(strings.Replace(str1, "ああ", "A", 2)) // AーA
fmt.Println(strings.Replace(str1, "あ", "AB", 1)) // ABあーああ
fmt.Println(strings.Replace(str1, "か", "A", 1)) // ああーああ
}
10行目の4つめの引数は1なので1回のみ置き換えす。
13行目の4つめの引数は-1なので全て置き換えます。
15,16行目は2つめの引数が2文字になっています。
17行目は3つめの引数が2文字になっています。
19行目は対象の文字がなかった場合で元の文字列が表示されます。エラーにはなりません。
指定した文字を削除する(Replace)
package main
import (
"fmt"
"strings"
)
func main() {
str1 := "あいうえお"
fmt.Println(strings.Replace(str1, "う", "", -1)) // あいえお
// 半角空白あり(△あ△い△う△ +1△△)
str2 := " あ い う +1 "
fmt.Println(strings.Replace(str2, " ", "", -1)) // あいう+1
}
10行目は、2つめの引数の文字を削除しています。
14行目は、半角スペースを削除しています。
正規表現で置き換える(ReplaceAllString)
func (re *Regexp) ReplaceAllString(src, repl string) string |
package main
import (
"fmt"
"regexp"
)
func main() {
str1 := "ABGC"
re1 := regexp.MustCompile("[A-C]")
fmt.Println(re1.ReplaceAllString(str1, "あ")) // ああGあ
}
10行目は、正規表現です。AまたはBまたはCの文字という意味になります。
11行目は、ReplaceAllStringと正規表現で文字列を置き換えています。
すべての文字を置き換える(ReplaceAll)
func ReplaceAll(1.文字列, 2.置換前の文字列, 3.置換後の文字列) string |
ReplaceAllはAllの文字があるのでわかりやすくなります。
package main
import (
"fmt"
"strings"
)
func main() {
str1 := "ああーああ"
fmt.Println(strings.ReplaceAll(str1, "あ", "A")) // AAーAA
}
関連の記事