neo4j字符串操作大全

1. 字符串基本操作函数

2. 字符串匹配筛选

3. apoc 包的字符串操作函数

4. 字符串操作符

5. 参考资料

字符串基本操作函数

函数 函数用途
lTrim() 删除字符串左边多余的空格
rTrim() 删除字符串右边多余的空格
trim() 删除字符串左右两边多余的空格
replace() 替换字符串
reverse() 将字符串的顺序反过来
left() 从左往右获取字符串
right() 从右往左获取字符串
split() 剪切字符串
substring() 从字符串中获取某一部分字符串
toLower() 将所有字母转换成小写字母
toUpper() 将所有字母转换成大写字母
toString() 将格式转换成字符串

空格删除

lTrim()

删除字符串左边多余的空格

RETURN lTrim('   hello')

结果
"hello"

rTrim()

删除字符串右边多余的空格

RETURN rTrim('hello   ')

结果
"hello"

trim()

删除字符串左右两边多余的空格

RETURN trim('   hello   ')

结果
"hello"

文本替换 replace()

返回一个字符串,其中原始字符串中所有出现的指定字符串都已被另一个(指定)字符串替换。
语法:

replace(original, search, replace)

参数

参数 描述
orginal 要返回的字符串
search 指定orginal字符串中哪些字符需要替换
replace 替换文本
RETURN replace("hello", "l", "w")

结果
"hewwo"

文本反转 reverse()

reverse()将原始字符床中所有字符的顺序都颠倒

RETURN reverse('anagram')

结果
"margana"

文本截取

left()

返回一个从原始字符串最左边到指定数量的字符串

RETURN right('hello', 3)

结果
"hel"

right()

返回一个从原始字符串最右边到指定数量的字符串

RETURN right('hello', 3)

结果
"llo"

substring()

返回一个从指定开始位置并返回指定长度的一个字符串。

RETURN substring('hello', 1, 3)

结果
"ell"

RETURN substring('hello', 2)

结果
"llo"

文本拆分 split()

split()

原始字符串在指定的界限字符周围拆分产生并返回一个字符串列表。

RETURN split('one,two', ',')

结果
["one","two"]

字符串匹配筛选

STRATS WITH 匹配开头文本

STRATS WITH运算符用于匹配字符串开头的文本,会区分大小写

MATCH (n)
WHERE n.name STARTS WITH 'Pet'
RETURN n.name

结果返回以含有Pet开头的人名 "Peter"

ENDS WITH 匹配结尾文本

ENDS WITH 运算符用于匹配字符串末尾的文本,也是区分大小写的。

MATCH (n)
WHERE n.name ENDS WITH 'ter'
RETURN n.name

结果返回以ter结尾的人名 Peter

CONTAINS 匹配包含文本

CONTAINS 运算符用来查找一个文本字符串中是否还有指定的字符串

MATCH (n)
WHERE n.name CONTAINS 'ete'
RETURN n.name

结果返回包含ete的人名

字符串匹配否定

使用NOT从结果中排除给定字符串的所有匹配项

MATCH (n)
WHERE NOT n.name ENDS WITH 'y'
RETURN n.name

结果返回所有节点的名称中不以y结尾的节点。

使用正则表达式进行匹配

cypher的正则表达式语法是从Java正则表达式继承过来的。

常见的有:

  • (?i) 不区分大小写
  • (?s) 多行
  • (?m) dotall

如:使用匹配正则表达式=~ 'regexp', 查询以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

字符串操作符

在某些时候,我们需要将两个字符串连接起来,这个时候就需要用到+
字符串运算符包括:

连接字符串:+
匹配正则表达式:=~

参考资料

  1. Text Functions in neo4j-apoc-procedures
  2. String functions
  3. where
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,219评论 0 4
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,146评论 0 3
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 1,045评论 0 1
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,378评论 0 5
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,257评论 0 9