Ale*_*nok 5

strings.Contains()
strings.Contains
package main

import (
    "fmt"
    "regexp"
)

var re = regexp.MustCompile(`first|second|third`)

func main() {
    fmt.Println(re.MatchString("This is the first example"))
    fmt.Println(re.MatchString("This is the second example after first"))
    fmt.Println(re.MatchString("This is the third example"))
    fmt.Println(re.MatchString("This is the forth example"))
}

输出:

true
true
true
false
strings.Contains()

另一个不错的选择是编写自己的扫描程序,该扫描程序可以使用前缀树利用子字符串中的公共前缀(如果有)。

  • 如果它们按特定顺序排列,则可以。如果它们以任意顺序排列,您仍然可以,但是对于 N > 2,正则表达式可能会变得非常复杂,因为您需要对所有可能的选项进行排列 - 很快就会变得混乱。 (2认同)