我有下面的代码,我希望用户输入一些关键词,然后从这些词中找到给定字符串中存在的内容,但结果matches切片是一个长度等于要检查的文本的空切片 游乐场package mainimport ( "fmt" "regexp")func main() { p := []string{} p = append(p, "engineer") p = append(p, "doctor") var skills string for _, z := range p { skills += `|` + z } fmt.Println(skills) re := regexp.MustCompile(`(?i)` + skills) matches := re.FindAllString("I'm an engineer not a doctor", -1) fmt.Println(matches) for i, j := range matches { fmt.Println(i, j) }}
1 回答
![?](http://img1.sycdn.imooc.com/5333a1660001394602000200-100-100.jpg)
阿波罗的战车
TA贡献1862条经验 获得超6个赞
感谢提供的评论,我得到的是:
package main
import (
"fmt"
"regexp"
"strings"
)
func main() {
p := []string{}
p = append(p, "engineer")
p = append(p, "doctor")
p = append(p, "chemical (permit)")
skills := strings.Join(p, "|")
fmt.Println(skills)
re := regexp.MustCompile(`(?i)` + skills)
matches := re.FindAllString("I'm an engineer not a doctor who is getting chemical permits", -1)
fmt.Println(matches, len(matches))
for i, j := range matches {
fmt.Println(i, j)
}
}
输出是:
engineer|doctor|chemical (permit)
[engineer doctor chemical permit] 3
0 engineer
1 doctor
2 chemical permit
- 1 回答
- 0 关注
- 77 浏览
添加回答
举报
0/150
提交
取消