regex - 使用 Dgraph Go 客户端 QueryWithVars 时使用变量进行 Dgraph 正则表达式查询

标签 regex variables go dgraph

在使用 Dgraph go 客户端时是否可以使用带有正则表达式搜索的变量?

我们可以使用 SprintF 构建查询,但那样是不安全的。

q :=query Search($searchterm: string) {
        subdomains(func: regexp(name, /^.*$searchterm/)) {
        uid:uid
        name:name
    }
}

以下查询不返回任何结果,即使它们存在。

q := `query Search($searchterm: string) {
        subdomains(func: regexp(name, /$searchterm/)) {
            uid:uid
            name:name
        }
    }`

或者这个

q := `query Search($searchterm: string) {
        subdomains(func: regexp(name, /.*$searchterm.*/)) {
            uid:uid
            name:name
        }
    }`

然后使用以下命令将查询发送到 dgraph:txn.QueryWithVars(ctx, q, variableMap)

编辑:这是一个错误。

最佳答案

不是你这样做的方式。但是您可以通过以正常方式连接字符串来构建动态正则表达式模式:

re, err := regexp.Compile("ˆ.*" + regexp.QuoteMeta(searchTerm))

关于regex - 使用 Dgraph Go 客户端 QueryWithVars 时使用变量进行 Dgraph 正则表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49895603/

相关文章:

regex - 非捕获组不贪心?

javascript - 使用 Javascript 变量更改 HTML 中的背景颜色

javascript - 更新 jQuery $(document).ready() 基本范围内的变量?

使用 mgo 进行精确的小数计算

不能用宏包装 cgo 标志

javascript - 添加冒号(:) after every 2nd character using Javascript

regex - 使用正则表达式删除除匹配字符串之外的所有文本

regex - 使用 sed 查找和替换?

javascript - 动态 JavaScript 变量?

go - 从 Golang 映射中读取字符串