【发布时间】:2022-01-24 09:16:01
【问题描述】:
如果字符串包含任何特殊字符,我需要执行不同的操作。 有没有办法在 gremlin 中实现正则表达式。
Input_Name= Test#input
if Input_Name.contains( "#/$%...")
{
println " error "
}
else
{
println "sucess"
}
【问题讨论】:
标签: gremlin
如果字符串包含任何特殊字符,我需要执行不同的操作。 有没有办法在 gremlin 中实现正则表达式。
Input_Name= Test#input
if Input_Name.contains( "#/$%...")
{
println " error "
}
else
{
println "sucess"
}
【问题讨论】:
标签: gremlin
目前 Gremlin 语言没有 TextP.regex 谓词。一些实现,例如 JanusGraph,确实向 Gremlin 添加了自定义正则表达式扩展。如果您使用的数据库允许,您也可以使用 Groovy 闭包语法在查询中包含正则表达式。在 TinkerPop 社区中,我们计划将 TextP.regex 添加到 Gremlin 语言中。如果一切顺利,我们希望将代码编写在一个分支上,该分支将成为 TinkerPop 3.6.0 版本的一部分。
但是,在您的情况下,如果您正在寻找一组有限的特殊字符,也许可以使用现有的TextP.containing,但这可能不是解决问题的最佳方法,因为您必须@ 987654324@几个has一起走。
如果您的数据库实现支持,另一种选择可能是使用外部索引。
作为闭包语法的一个示例,如果您的实现允许,则 REGEX 匹配将如下面的示例所示。但总的来说,不建议使用闭包,许多实现要么完全阻塞,要么极度限制它们的使用。
gremlin> g.V().limit(20).filter {it.get().values('desc').next() ==~ "[A-Za-z]* [A-Z]'(.*)"}.values('desc')
==>Chicago O'Hare International Airport
【讨论】: