当前位置: > > > > 如何在字符之间查找和替换
来源: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的相关知识,也可关注公众号。