我有一个select查询,它使用regex来匹配大字符串内容中的字符串。
不知何故,当我在pgadmin中运行它时,它不会产生任何结果。但是,当我在其他regex匹配工具中测试时,相同的模式匹配所需的模式。
select count(DEVICE.DeviceID) from DEVICE
where ('!
redundancy
!
vlan internal allocation policy ascending
!' ~* '^redundancy$')我期待模式匹配,因为字符串“冗余”存在于一行中。
发布于 2019-07-15 12:15:13
您需要指定https://www.postgresql.org/docs/current/functions-matching.html#POSIX-MATCHING-RULES
m historical synonym for n
n newline-sensitive matching如果指定了新行敏感匹配,则使用
.和^的括号表达式将永远不会匹配换行符(因此,除非RE显式地安排换行符,否则匹配将永远不会跨越换行符),^和$将分别匹配换行符前后的空字符串,以及字符串开始和结束时的匹配。但是,ARE转义符\A和\Z继续只匹配字符串的开始或结束。
使用任何一种
'(?m)^redundancy$'或
'(?n)^redundancy$'https://stackoverflow.com/questions/57039286
复制相似问题