本文介绍在 go 中高效过滤掉包含指定子字符串的文本行,通过正则表达式实现类似 ruby `reject { |r| r.include? 'substring' }` 的语义,并兼顾跨平台换行符(`\n`/`\r\n`)和边界匹配准确性。
在 Go 中处理文本行过滤时,由于标准库不提供类似 Ruby 的链式 split → reject → join 高阶操作,需结合 strings 包或正则表达式手动实现。最简洁、鲁棒的方式是使用 r
egexp 包配合多行模式((?m)),精准匹配整行并移除。
以下是一个完整可运行的示例:
package main
import (
"fmt"
"regexp"
)
func removeLinesContaining(s, substr string) string {
// 构造正则:多行模式下,匹配以任意换行符开头(可选)、包含 substr 的整行(含其后的换行符)
// 使用 [\r\n]+ 适配 \n 和 \r\n;^ 和 $ 在 (?m) 下匹配行首/行尾
pattern := "(?m)^.*" + regexp.QuoteMeta(substr) + ".*$[\r\n]*"
re := regexp.MustCompile(pattern)
return re.ReplaceAllString(s, "")
}
func main() {
input := `aaaaa
bbbb
cc substring ddd
eeee
ffff
ggg\r\nhh substring ii\r\njjj`
result := removeLinesContaining(input, "substring")
fmt.Println(result)
}输出:
aaaaa bbbb eeee ffff ggg jjj
✅ 关键要点说明:
⚠️ 注意事项:
综上,正则方案适合中小规模文本、追求代码简洁性;流式逐行处理更适合大数据量或严格内存控制场景。两者皆可封装为通用函数,按需选用。
# go
# 正则表达式
# 大数据
# 字节
# ai
# 标准库
# ruby
# 封装
# include
# 字符串
# 切片
# regexp
# 换行符
# 链式
# 是一个
# 也能
# 而不
# 可在
# 行尾
# 仅是
# 可选
相关文章:
济南网站建设制作公司,室内设计网站一般都有哪些功能?
招商网站制作流程,网站招商广告语?
如何选择高效可靠的多用户建站源码资源?
建站之星24小时客服电话如何获取?
公司网站设计制作厂家,怎么创建自己的一个网站?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
网站制作员失业,怎样查看自己网站的注册者?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
如何快速生成橙子建站落地页链接?
建站ABC备案流程中有哪些关键注意事项?
如何高效完成独享虚拟主机建站?
如何零基础开发自助建站系统?完整教程解析
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
音响网站制作视频教程,隆霸音响官方网站?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
为什么Go需要go mod文件_Go go mod文件作用说明
如何快速搭建高效WAP手机网站?
建站VPS推荐:2025年高性能服务器配置指南
开源网站制作软件,开源网站什么意思?
如何在建站主机中优化服务器配置?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
如何在阿里云完成域名注册与建站?
如何通过NAT技术实现内网高效建站?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
微信小程序 input输入框控件详解及实例(多种示例)
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
建站之星后台管理:高效配置与模板优化提升用户体验
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
浅谈Javascript中的Label语句
如何通过多用户协作模板快速搭建高效企业网站?
浅析上传头像示例及其注意事项
如何快速搭建安全的FTP站点?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
css网站制作参考文献有哪些,易聊怎么注册?
建站之星安装步骤有哪些常见问题?
如何续费美橙建站之星域名及服务?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
C#怎么使用委托和事件 C# delegate与event编程方法
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
如何有效防御Web建站篡改攻击?
建站之星如何修改网站生成路径?
如何快速上传自定义模板至建站之星?
如何通过服务器快速搭建网站?完整步骤解析
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
Thinkphp 中 distinct 的用法解析
Swift中循环语句中的转移语句 break 和 continue
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
如何在阿里云香港服务器快速搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。