程序开发 · 2025年1月20日

如何在字符之间查找和替换

当前位置: > > > > 如何在字符之间查找和替换

来源:stackoverflow
2024-04-19 22:36:38
0浏览
收藏

欢迎各位小伙伴来到,相聚于此都是缘哈哈哈!今天我给大家带来《如何在字符之间查找和替换》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我正在尝试将以下字符串中的第二个“AND”替换为“OR”:

country == "BR" AND (leftHour >= 6 AND rightHour < 24)

我的策略是使用正则表达式执行此操作:\((.*)\) 但这匹配括号之间的所有字符,我只想匹配两个括号之间的 AND

在 Go 中就很完美,但好的正则表达式就足够了。

编辑:字符串不是固定的,我们可以在前面有多个“AND”,例如: currency == "USD" AND 国家 == "BR" AND (leftHour >= 6 AND rightHour < 24)

解决方案

您可以使用像 \([^()]*\) 这样的正则表达式来匹配最里面括号内的字符串,并使用 仅将匹配文本中的所有 and 替换为 or

package main

import (
        "fmt"
        "strings"
        "regexp"
)

func main() {
        input := `country == "br" and (lefthour >= 6 and righthour < 24)`
        r := regexp.mustcompile(`\([^()]*\)`)
        fmt.println(r.replaceallstringfunc(input, func(m string) string {
                return strings.replaceall(m, "and", "or")
        }))
}

查看

请注意,您可以使用第二个正则表达式替换 and

return regexp.MustCompile(`\bAND\b`).ReplaceAllString(m, "OR")

这将替换整个单词的 and,无论是否有空格。请参阅 。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持!更多关于Golang的相关知识,也可关注公众号。