我需要用相同单词的大写替换字符串。到目前为止,我可以从包含我的字符串的文本文件中搜索子字符串,并将“apple”或“Apple”或“ApPle”之类的单词替换为“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
}