2017-08-08 8 views
-2

"byte"を "$ ball"に置き換える必要がある関数があります。これは正しく動作していないようです。 ここにプログラムスニペットがあります。正規表現の置換文字列でドル記号をエスケープする

fun main() { 

    str := []byte("$apple in a byte\n") 
    strReplace := "$ball" 

    re := regexp.MustCompile("byte") 

    final := re.ReplaceAll(str, []byte(strReplace)) 

    ioutil.WriteFile("testfile.txt", final, 0744) 
} 
TESTFILE.TXTで

予想される出力:$ボールで $りんご

TESTFILE.TXTで

実際の出力:

で $りんご成功し所望の出力を得るための任意のソリューション?

答えて

2

あなたは$$を使用していますが、それはドキュメントがあなたに伝える内容です。

ReplaceAllためgodocセクション(https://godoc.org/regexp#Regexp.ReplaceAll)がわかります:

$兆候がであると解釈されているので、Expandのセクションを読んで

を展開して答えを持っています。 https://godoc.org/regexp#Regexp.Expand

質問を投稿する前に、使用しているパッケージと機能に関するすべての関連ドキュメントをお読みください。

+0

私の悪い!私は、これがバイトタイプの問題であると仮定していて、このドキュメントだけで検索しています。 – Ronyjoe

関連する問題