在Snowflake中,REGEX_SUBSTR是否有最大返回大小?

ljsrvy3e  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(179)

SNowflake中的regex_substr(或一般情况下)是否有最大返回长度或字节值?

Name: TEST_MAIL

Email: [email protected]

Subject: iOS(2.7.04.1518): Unknown reason

Message: I can't enter 'SPECIFIC ROOM' because I'm too far away from the
reader. Can I have remote unlock permission?

Persistent State:

字符串
但是,当我尝试使用

SELECT 

--REGEXP_SUBSTR(CONTENT, '^(^Name\:)([A-z ])*') as Email_Name,
--REGEXP_SUBSTR(CONTENT, 'Subject\:([A-z0-9 \(\).])*') as Subject,
REGEXP_SUBSTR(CONTENT, 'Message\:([A-z0-9 \'.\?\n’,\)\(]*)') as Message
FROM TABLE


我得到这个

"Message: I can't enter 'SPECIFIC ROOM' because I'm too far away from the"


我不确定这是否相关,但是这个字段的剩余内容仍然是巨大的。它存储在Snowflake中的TEXT字段中。
我没有能力让客户端提前将这些单独的字段拆分出来,也不能将它们重新格式化为JSON,尽管我想知道是否有更好的方法来重新格式化字符串,以便所有单独的字段都成为它们自己的JSON元素。
任何帮助?

huus2vyu

huus2vyu1#

您将需要使用多行参数模式:
由一个或多个字符组成的字符串,用于指定用于搜索匹配项的正则表达式参数。支持的值包括:
c:区分大小写。
i:不区分大小写。
M:多线模式。
E:提取子匹配。
s:通配符."“也与换行符匹配。
因此,您将希望使用:

SELECT 

--REGEXP_SUBSTR(CONTENT, '^(^Name\:)([A-z ])*') as Email_Name,
--REGEXP_SUBSTR(CONTENT, 'Subject\:([A-z0-9 \(\).])*') as Subject,
REGEXP_SUBSTR(CONTENT, 'Message\:([A-z0-9 \'.\?\n’,\)\(]*)', 1, 1, 'ms') as Message
FROM TABLE

字符串

相关问题