私は本当に新しくて、これまで楽しんでいます。私は文字列の代わりに正規表現を使って文字列を分割する良い方法を見つけようとしています。ありがとうGoで正規表現を使用して文字列を分割する
http://nsf.github.com/go/strings.html?f:Split!
私は本当に新しくて、これまで楽しんでいます。私は文字列の代わりに正規表現を使って文字列を分割する良い方法を見つけようとしています。ありがとうGoで正規表現を使用して文字列を分割する
http://nsf.github.com/go/strings.html?f:Split!
特定の文字に分割したい場合は、strings.FieldsFunc
を使用できます。そうでないと、regexp.FindAllString
となります。
RegExp.FindAllStringの結果をループする独自の分割関数を作成し、介在する部分文字列を新しい配列に配置することができます。
http://nsf.github.com/go/regexp.html?m:Regexp.FindAllString!
'RegExp'はどこから得られたのかよく分かりませんが、正しいパッケージ名は' regexp'です。 Goは大文字と小文字を区別します! –
java、c#、php ....のregex split関数の動作に基づいて正規表現分割関数を作成しました。インデックス情報なしで文字列の配列のみを返します。
func RegSplit(text string, delimeter string) []string {
reg := regexp.MustCompile(delimeter)
indexes := reg.FindAllStringIndex(text, -1)
laststart := 0
result := make([]string, len(indexes) + 1)
for i, element := range indexes {
result[i] = text[laststart:element[0]]
laststart = element[1]
}
result[len(indexes)] = text[laststart:len(text)]
return result
}
例:
fmt.Println(RegSplit("a1b22c333d", "[0-9]+"))
結果:
[a b c d]
regexp.Split()機能は、これを実行するための最良の方法だろう。
[Go 1.1で追加](https://golang.org/doc/go1.1)([2013年5月](https://golang.org/doc/devel/release.html#go1)です。 1))。 – n8henrie
私はこれを試しましたが、分割したい文字を上書きします。私はキャラクターを失いたくない、ちょうどスペースを挿入する。私はforループを使って目標を達成しました。ありがとう。 PS - あなたの答えは正規表現を含んでいませんでした、多分それが下の投票があるのですか? – Brenden
「上書きされる」ものは何もありません。返されたものの単なる質問です。あなたが好きなら、いつも異なる正規表現関数を使ってインデックスを取得し、それらを使うことができます。 –