首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配多个字符串的Regexp - Ruby

匹配多个字符串的Regexp - Ruby
EN

Stack Overflow用户
提问于 2015-04-14 16:53:00
回答 5查看 534关注 0票数 1

假设我有以下地址数组

代码语言:javascript
复制
array = ["1 New Street, Filton Grove, Bristol BD7 0AA", "2 New Street, Filton Grove, Bristol BD7 0AA", "3 New Street, Filton Grove, Bristol BD7 0AA"]

我想检查数组中的每一项是否都包含单词Filton Grove Bristol,但由于地址中有逗号,这有点让我大吃一惊。

如何忽略逗号并检查每个单词是否存在于数组的每次迭代中

到目前为止,我有这个

代码语言:javascript
复制
regexp = /^Filton Grove Bristol/i
array.all? { |a| regex =~ a }

但这失败了。

EN

回答 5

Stack Overflow用户

发布于 2015-04-14 16:57:24

您可以单独检查单词。

代码语言:javascript
复制
regexp_checks = [/Filton/i, /Grove/i, /Bristol/i]
array.all? { |a| regexp_checks.all?{|rgx| a =~ rgx} }
票数 2
EN

Stack Overflow用户

发布于 2015-04-14 16:59:10

你也可以通过这种方式签到..

代码语言:javascript
复制
regexp_checks = [/Filton.*?Grove.*?Bristol/i]
array.all? { |a| regexp_checks.all?{|rgx| a =~ rgx} }

注意:仅当您想要保持单词的显示顺序时才使用此选项。如果顺序很重要,并且中间不允许有其他单词..您可以使用

regexp_checks = [/Filton\W+Grove\W+Bristol/i]

票数 2
EN

Stack Overflow用户

发布于 2015-04-14 17:00:09

尝试执行以下正则表达式

regexp = /Filton Grove,?\s*Bristol/i

您不需要在您的正则表达式中使用^

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29623061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档