新换行模式搜索?

时间:2017-08-29 13:39:00

标签: neo4j cypher

使用简单的查询:

MATCH (c:Customer)
where c.customerRemark =~ '(?ui).*test.*' 
RETURN c
当你有一个单行文本时,

绝对正常。当您在数据记录中插入新换行符时,输入查询失败并且不显示数据记录,尽管单词test在数据字段中。 看起来cypher看不到断线后面的什么? 任何人都有分享经验或想法如何避免这种情况?

预期结果应该是所有带有" test"在现场customerRemarks中应该找到,无论是1行还是多行 - 因为这是一个通常有很多文本的字段。

我在Linux和Windows服务器上使用Neo4j 3.1.1和PHP 5.4。

由于 乙

****编辑**** 以下是创建两个节点的两个语句:

CREATE (c:Customer {nodeID:1}) SET c.customerRemark = "This is a test - Node 1" return c

CREATE (c:Customer {nodeID:2}) SET c.customerRemark = "This is a test with a linebreak inside - Node 2 Here comes text: 
here was a linebreak" return c

声明:

MATCH (c:Customer) where c.customerRemark =~ '(?ui).*Node.*' RETURN c

仅使用节点1代替节点1和2

1 个答案:

答案 0 :(得分:2)

将标记mmultiline)和sdotall)添加到正则表达式中。

MATCH (c:Customer) where c.customerRemark =~ '(?muis).*Node.*' RETURN c