arrays - 在 Ruby 中查找字符串中的多个模式
问题描述
我正在尝试在数组中查找与多个正则表达式模式匹配的字符串。我想出了如何为一种模式执行此操作,如下所示:
spamWords = Regexp.new("Delighted")
spamCount1 = 0
spamArray.each do |word|
if word =~ spamWords
spamCount1 +=1
end
end
p spamCount1
我遍历了一个spamWord
字符串数组,但我想知道是否有更简单的方法可以做到这一点。
解决方案
您可以将多个模式合并到一个正则表达式中,然后像下面一样执行搜索:
spamWords = Regexp.new("Delighted|Saddened")
您还可以使用Regexp.union
为您自动生成此正则表达式:
spamWords = Regexp.union("Delighted", "Saddened")
推荐阅读
- arrays - 排除某些列 IDL 的数组的平均值
- python - 显示 GIF 并等待按键
- jasper-reports - 静态文本:它旁边的字段值
- dialog - InstallShield 自定义对话框,WaitOnDialog() 始终返回 -1 (DLG_ERR)
- regex - sed:替换与包含正斜杠的模式匹配的行?
- java - 当我通过 Java 执行时,VBScript 需要很长时间/不执行,但是当我通过命令提示符执行它时它会运行?
- mysql - 选择不同的行,将它们转换为列并计算值
- rest - 使用 OData 创建异步资源
- python - Pandas .at 抛出 ValueError:基于整数索引的索引只能有整数索引器
- pyspark - pyspark:read.parquet 同时跳过丢失的文件