文字列を同じ単語の大文字に置き換える必要があります。これまでのところ、文字列を含むテキスト ファイルから部分文字列を検索し、「apple」、「Apple」、「ApPle」などの単語を「APPLE」に置き換えることができます。 "。文字列が「Is that pineapple Apple adamsApple applepie の匂いですか?」の場合に問題が発生します。私の検索キーワードは他の単語の間にあるため、検索して変換することはできません。
私の最終的な作業コード:
//Get the txt file from the directory and search for word
func fileRead(getPath string, searchkey string){
var count int
buf1,_:=ioutil.ReadFile(getPath);
var buf2= string(buf1)
var b string
tokens:=strings.Fields(buf2)
re := regexp.MustCompile("(?i)"+searchkey)//make searchkey case insensitive
for i:=0;i<len(tokens);i++{
if (strings.EqualFold(tokens[i],searchkey)){
tokens[i] = re.ReplaceAllString(tokens[i], strings.ToUpper(searchkey))
count++
}else{
tokens[i]=re.ReplaceAllLiteralString(tokens[i],strings.ToUpper(searchkey))
count++
}
}
for j:=0; j<len(tokens); j++{
b+= tokens[j]
b+=" "
}
c := []byte(b)
fmt.Println(count," ",getPath)
ioutil.WriteFile(getPath, c, 0644)//rights back to the file
}