ruby - 如何在 Ruby 正则表达式中使用 AND

标签 ruby regex

我在使用 Ruby 正则表达式时遇到问题。

如何在 ruby​​ 中执行 AND(&) 正则表达式?

例如:

cat and dog
cat
dog

I just want to match "cat and dog"

最佳答案

你可以做类似 AND 的事情,使用积极的前瞻

(?=.*cat)(?=.*dog).*

查看here on Rubular 已更新链接!

这种积极的前瞻性 (?=.*cat) 检查字符串中某处是否有“cat”,然后使用 (?=.*狗)。如果这两个断言都为真,则完整的字符串与末尾的 .* 匹配。

好处是也会匹配

dog and cat

不仅如此

cat and dog

但它也会匹配

dogs and cats

如果你想要完全匹配,那么使用这个

(?=.*\bcat\b)(?=.*\bdog\b).*

\b 是一个单词边界,即它匹配一个单词和一个非单词字符。

查看here

关于ruby - 如何在 Ruby 正则表达式中使用 AND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6437516/

相关文章:

python - 正则表达式在 Rubular 中传递,但在 Python 中不传递

javascript - 如何对我们的电话号码进行正则表达式验证而不以 0 或 1 开头?

regex - 代码格式 - 减轻不可读的大正则表达式的方法?

javascript - 如何拆分 'htmlElement#idName.className.anotherClassName' 格式的字符串?

ruby-on-rails - 将 ruby​​ 中的日期转换为自定义格式

ruby-on-rails - 有没有更有效/更合适的方法来用 Ruby 编写这个?

ruby - 如何找到我的 Ruby 应用程序中的性能瓶颈?

ruby - 如何使用 ruby​​ 中的 wget 和 `&`

ruby - 为什么默认情况下 Ruby (2.0 +) 中的 Enumerators 不是惰性的?

c# - 正则表达式用哈希标签捕获括号?