Goa*_*lie 16 regex ruby-on-rails mongodb mongoid
Mongoid文档仅提供了一个进行通配符搜索的示例:
Person.where(first_name: /^d/i)
Run Code Online (Sandbox Code Playgroud)
这会找到名字以"d"开头的所有人.
什么做/^
和/i
代表什么?
我怎样才能找到名字中间有"na"的所有人?例如,此查询将找到"jonathan",因为"na"是整个字符串的子字符串.
有这些信息的网站或指南吗?
Ser*_*sev 39
你需要这个来找到名字中带有"na"的人.
Person.where(first_name: /na/i)
Run Code Online (Sandbox Code Playgroud)
至于你的例子:
Person.where(first_name: /^d/i)
Run Code Online (Sandbox Code Playgroud)
^
意思是"行的开头".此正则表达式将匹配第一个字母为"d"的所有字符串./i
意思是"做不区分大小写的匹配".所以它会匹配"d"和"D".
注意:只有前缀regexes(^
在前面)才能使用索引.
有这些信息的网站或指南吗?
这是我的最爱.
这不是“通配符”搜索,这称为正则表达式。
/^d/i
Run Code Online (Sandbox Code Playgroud)
i
是修饰符或选项。它改变了您的正则表达式的匹配行为,i
代表不区分大小写,表示它匹配“ d”和“ D”。^
是锚点,它将搜索模式锚定到字符串的开头,意味着仅在字符串的开头匹配“ d”关于正则表达式的一个很好的教程是regular-expressions.info上的教程。
如果要在字符串中的任何位置搜索字符串,只需删除将模式绑定到开头的锚点,即可/na/
在字符串中的任何位置找到“ na”。
归档时间: |
|
查看次数: |
13580 次 |
最近记录: |