首页 > 解决方案 > 如何检查字符串是否包含每个正则表达式

问题描述

我想检查一个字符串是否包含所有给定的正则表达式。我不想遍历每个正则表达式的字符串。

return "foo".all_chars {include? ( \letter\ && \number\ && \special\)}

或者

return "foo".all_chars {include? ( \letter , number , special\)}

标签: ruby

解决方案


我不想遍历每个正则表达式的字符串。

你最终会得到一个非常讨厌、不可读和不可维护的正则表达式模式。但是,如果您愿意,可以将它们组合起来,然后调用match?它。

鉴于...

regex1 = %r{[a-z]}
regex2 = %r{[^aeiou]}

all_regex = %r{[a-z&&[^aeiou]]}

但是使用起来真的没有坏处Enumerable#all?

[regex1, regex2, regex3].all? { |regex| string.match?(regex) }


推荐阅读