字符串基本操作函数
函数 | 函数用途 |
---|---|
lTrim() | 删除字符串左边多余的空格,例子 RETURN lTrim(' hello') |
rTrim() | 删除字符串右边多余的空格,例子 RETURN rTrim('hello ') |
trim() | 删除字符串左右两边多余的空格,例子RETURN trim(' hello ') |
replace() | 替换字符串,例子RETURN replace("hello", "l", "w") |
reverse() | 将字符串的顺序反过来,例子RETURN reverse('anagram') |
left() | 从左往右获取字符串,RETURN right('hello', 3),返回”hel“ |
right() | 从右往左获取字符串,RETURN right('hello', 3),返回”llo“ |
split() | 剪切字符串,RETURN split('one,two', ','),结果["one","two"] |
substring() | 从字符串中获取某一部分字符串 |
toLower() | 将所有字母转换成小写字母 |
toUpper() | 将所有字母转换成大写字母 |
toString() | 将格式转换成字符串 |
substring()
返回一个从指定开始位置并返回指定长度的一个字符串。
RETURN substring('hello', 1, 3) # 结果"ell"
RETURN substring('hello', 2) # 结果"llo"
字符串匹配筛选
STRATS WITH
运算符用于匹配字符串开头的文本,会区分大小写
# 结果返回以Pet开头的人名
MATCH (n)
WHERE n.name STARTS WITH 'Pet'
RETURN n.name
ENDS WITH
运算符用于匹配字符串末尾的文本,也是区分大小写的。
# 结果返回以ter结尾的人名
MATCH (n)
WHERE n.name ENDS WITH 'ter'
RETURN n.name
CONTAINS
运算符用来查找一个文本字符串中是否还有指定的字符串
# 结果返回包含ete的人名
MATCH (n)
WHERE n.name CONTAINS 'ete'
RETURN n.name
NOT
从结果中排除给定字符串的所有匹配项
# 结果返回所有节点的名称中不以y结尾的节点。
MATCH (n)
WHERE NOT n.name ENDS WITH 'y'
RETURN n.name
正则表达式进行匹配=~
cypher的正则表达式语法是从Java正则表达式继承过来的。
常见的有:
-
(?i) 不区分大小写
-
(?s) 多行
-
(?m) dotall
如: 查询以Tim开头的名称
MATCH (n)
WHERE n.name =~ 'Tim.*'
RETURN n.name
apoc 包的字符串操作函数
函数 | 函数描述 |
---|---|
apoc.text.indexOf(text, lookup, offset=0, to=-1==len) | 查找文本中查找字符串的第一次出现,从包含(包括)到排除(exclusive),如果未找到则为-1,如果text为null,则为null。 |
apoc.text.indexesOf(text, lookup, from=0, to=-1==len) | 查找文本中所有出现的查找字符串,返回列表,从包含列表到排除列表,如果找不到,则为空列表,如果text为null,则返回null。 |
apoc.text.replace(text, regex, replacement) | 将给定字符串中与给定正则表达式匹配的每个子字符串替换为给定替换。 |
apoc.text.regexGroups(text, regex) | 返回一个包含每个匹配的嵌套数组的数组。内部数组包含所有匹配组。 |
apoc.text.join([‘text1’,‘text2’,…], delimiter) | 用给定的分隔符连接给定的字符串。 |
apoc.text.format(text,[params],language) | sprintf使用给定的参数和可选的参数语言格式化字符串(默认值为’en’)。 |
apoc.text.lpad(text,count,delim) | 左垫字符串到给定的宽度 |
apoc.text.rpad(text,count,delim) | 右垫字符串到给定的宽度 |
apoc.text.random(length, [valid]) | 返回指定长度的随机字符串 |
apoc.text.capitalize(text) | 大写单词的第一个字母 |
apoc.text.capitalizeAll(text) | 大写每个单词的第一个字母 |
apoc.text.decapitalize(text) | 将单词的第一个字母大写 |
apoc.text.decapitalizeAll(text) | 将所有单词的首字母大写 |
apoc.text.swapCase(text) | 交换字符串的大小 |
apoc.text.camelCase(text) | 将字符串转换为camelCase |
apoc.text.upperCamelCase(text) | 将字符串转换为UpperCamelCase |
apoc.text.snakeCase(text) | 将字符串转换为蛇形 |
apoc.text.toUpperCase(text) | 将字符串转换为UPPER_CASE |
apoc.text.charAt(text, index) | 返回给定索引处字符的十进制值 |
apoc.text.code(codepoint) | 返回给定代码点的unicode字符 |
apoc.text.hexCharAt(text, index) | 返回给定索引处字符的十六进制值字符串 |
apoc.text.hexValue(value) | 返回给定值的十六进制值字符串 |
apoc.text.byteCount(text,[charset]) | 返回文本的大小(以字节为单位) |
apoc.text.bytes(text,[charset]) - return bytes of the text | apoc.text.toCypher(值,{skipKeys,keepKeys,skipValues,keepValues,skipNull,node,relationship,start,end}) |
tries it’s best to convert the value to a cypher-property-string | apoc.text.base64Encode(text)-使用Base64编码字符串 |
apoc.text.base64Decode(text) - Decode Base64 encoded string | apoc.text.base64UrlEncode(url)-使用Base64编码url |
字符串操作符
在某些时候,需要将两个字符串连接起来,这个时候就需要用到 +字符串运算符