我有一些对象:
{
"name": "universite paris sorbonne" ,
"id": "548272c9-6615-4e93-aa15-9af0a830c9a2"
}
{
"name": "universite paris dauphine" ,
"id": "943234f3-6615-4e93-aa15-9af0a830c9a2"
}
{
"name": "universite sorbonne nouvelle" ,
"id": "24f477f3-6615-4e93-aa15-9af0a830c9a2"
}
如果我想选择名称中包含paris dau
的每个对象,该怎么办?
我已尝试过,但它不起作用。
curs, _ = r.Table("places").
Filter(func(customer r.Term) interface{}{
return customer.Field('name').Downcase().Contains(func (custo r.Term) interface{}{
return custo.Match(".\\*" + strings.ToLower('paris dau') + ".\\*")
})
有什么建议吗?
答案 0 :(得分:1)
我通过将数据转储到地图中然后做了一个简单的正则表达式匹配来简化您的问题。
package main
import (
"fmt"
"regexp"
)
func main() {
data := map[string]string{
"548272c9-6615-4e93-aa15-9af0a830c9a2": "universite paris sorbonne",
"943234f3-6615-4e93-aa15-9af0a830c9a2": "universite paris dauphine",
"24f477f3-6615-4e93-aa15-9af0a830c9a2": "universite sorbonne nouvelle",
}
var matches = make([]string, 0)
for _, value := range data {
matched, err := regexp.MatchString(".*paris dau.*", value)
if err == nil && matched {
matches = append(matches, value)
}
}
fmt.Printf("Matches: %v\n", matches)
}