- Go Systems Programming
- Mihalis Tsoukalos
- 268字
- 2021-07-02 18:08:02
Find and replace
The example in this subsection will search the provided text for two variations of a given string and replace it with another string. The program will be named findReplace.go and will actually use Go regular expressions. The main reason for using the regexp.Compile() function, in this case, is that it greatly simplifies things and allows you to access your text only once.
The first part of the findReplace.go program is as follows:
package main import ( "fmt" "os" "regexp" )
The next part is as follows:
func main() { var s [3]string s[0] = "1 b 3" s[1] = "11 a B 14 1 1" s[2] = "b 2 -3 B -5" parse, err := regexp.Compile("[bB]")
if err != nil { fmt.Printf("Error compiling RE: %s\n", err) os.Exit(-1) }
The previous Go code will find every occurrence of an uppercase B or a lowercase b ([bB]). Note that there is also regexp.MustCompile() that works like regexp.Compile(). However, regexp.MustCompile() does not return an error variable; it just panics if the given expression is erroneous and cannot be parsed. As a result, regexp.Compile() is a better choice.
The last part is as follows:
for i := 0; i < len(s); i++ { temp := parse.ReplaceAllString(s[i], "C") fmt.Println(temp) } }
Here you replace each match with an uppercase C using parse.ReplaceAllString().
Executing findReplace.go generates the expected output:
$ go run findReplace.go 1 C 3 11 a C 14 1 1 C 2 -3 C -5
- UI設(shè)計(jì)基礎(chǔ)培訓(xùn)教程
- 玩轉(zhuǎn)Scratch少兒趣味編程
- 在最好的年紀(jì)學(xué)Python:小學(xué)生趣味編程
- JIRA 7 Administration Cookbook(Second Edition)
- 零基礎(chǔ)學(xué)Java(第4版)
- 手把手教你學(xué)C語(yǔ)言
- HTML5+CSS3網(wǎng)頁(yè)設(shè)計(jì)
- Learning Data Mining with R
- Apache Mahout Clustering Designs
- Spring Boot Cookbook
- 利用Python進(jìn)行數(shù)據(jù)分析
- The Professional ScrumMaster’s Handbook
- 基于SpringBoot實(shí)現(xiàn):Java分布式中間件開發(fā)入門與實(shí)戰(zhàn)
- Getting Started with Nano Server
- Visual C++開發(fā)寶典