卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章55831本站已运行404

如何用 Golang 正则匹配多个单词或字符串?

golang 正则表达式使用管道符 | 来匹配多个单词或字符串,将各个选项作为逻辑 or 表达式分隔开来。例如:匹配 "fox" 或 "dog":fox|dog匹配 "quick"、"brown" 或 "lazy":(quick|brown|lazy)匹配 "go"、"python" 或 "java":go|python|java匹配单词或 4 位邮政编码:([a-za-z]+|1[0-9]{3})匹配以 "从" 或 "到" 开头或结尾的字符串:(^[ff]ro?m)|([tt]o)$

如何用 Golang 正则匹配多个单词或字符串?

如何用 Golang 正则匹配多个单词或字符串

Golang 的正则表达式提供了 | (管道符) 运算符,用于匹配多个单词或字符串。| 运算符将每个选项分隔开来,形成逻辑 OR 表达式。

匹配代码

import (
    "fmt"
    "regexp"
)

func main() {
    text := "The quick brown fox jumped over the lazy dog."

    // 匹配 "fox" 或 "dog"
    matched, err := regexp.MatchString("fox|dog", text)
    if err != nil {
        fmt.Println(err)
        return
    }
    // 输出:true

    // 匹配 "quick"、"brown" 或 "lazy"
    matched, err = regexp.MatchString("(quick|brown|lazy)", text)
    if err != nil {
        fmt.Println(err)
        return
    }
    // 输出:true
}

更多示例

  • (Go|Python|Java) 匹配 "Go"、"Python" 或 "Java"。
  • ([a-zA-Z]+|1[0-9]{3}) 匹配单词或 4 位邮政编码。
  • (^[Ff]ro?m)|([Tt]o)$ 匹配以 "从" 或 "到" 开头或结尾的字符串。

注意事项

  • | 运算符优先级高于 , 运算符。如果需要分组,请使用括号 ()。
  • 如果 | 运算符后没有表达式,会引发错误。
  • 正则表达式中的 | 运算符在字符串匹配之外的其他上下文中也有其他含义。请根据具体使用场景谨慎使用。
卓越飞翔博客
上一篇: PHP设计模式:常见误区与陷阱
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏