gpt4 book ai didi

ruby - 如何在 Ruby 中为多个单词/短语编写正则表达式?

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:50 25 4
gpt4 key购买 nike

所以我知道如何找到一个词的关键字就好了:

text =~ /keyword1|keyword2|keyword3/i

但是我如何找到短语呢?例如。 “天空是蓝色的......但有时它会变成橙色。”

我试过:

text =~ /(the sky is blue)|(orange sky)|(sky is blue but orange)/i

但这没有用。

想法?基本上,我如何将多个以空格分隔的关键字串在一起,并能够找到与这些短语相对应的文本?

最佳答案

我不确定您所说的“那行不通”是什么意思。 =~ 返回正则表达式找到匹配项的索引:

"The sky is blue....but sometimes it turns to orange." =~ /(the sky is blue)|(orange sky)|(sky is blue but orange)/i
# => 0

0 是“the sky is blue”找到匹配项的索引。如果未找到匹配项,=~ 返回 nil0 在 Ruby 中是“真”而 nil 是“假”,所以匹配的结果可以用在 if 语句中。

如果这些正是您要查找的短语,则您现有的正则表达式应该可以正常工作。

"The sky is green....but sometimes it turns to orange sky." =~ /(the sky is blue)|(orange sky)|(sky is blue but orange)/i
# => 46

您可以使用 String#squeeze在运行正则表达式之前删除多个空格的方法。

"The sky is green....but sky is blue      but orange sometimes.".squeeze!(" ") =~ /(the sky is blue)|(orange sky)|(sky is blue but orange)/i
# => 24

这有帮助吗?

关于ruby - 如何在 Ruby 中为多个单词/短语编写正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10603111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com