Regex Oracle-如何获取指定长度和字符后的字符串
我有多个以“;”为单位的字符串。我必须在一列中插入这些单词,不幸的是,该列限制为500个字符。在突破500个字符之前,我想在最后一个单词处剪切字符串 我尝试使用Regex Oracle-如何获取指定长度和字符后的字符串,regex,oracle,Regex,Oracle,我有多个以“;”为单位的字符串。我必须在一列中插入这些单词,不幸的是,该列限制为500个字符。在突破500个字符之前,我想在最后一个单词处剪切字符串 我尝试使用REGEXP\u SUBSTR(选择REGEXP\u SUBSTR(col,[^;]+',1,1)),但此查询只返回第一个字符串 无法更改表格。您可以尝试: SELECT REGEXP_REPLACE(SUBSTR(col, 1, 500), ';[^;]*$', '') AS col_out FROM yourTable; 这
REGEXP\u SUBSTR(选择REGEXP\u SUBSTR(col,[^;]+',1,1))
,但此查询只返回第一个字符串
无法更改表格。您可以尝试:
SELECT
REGEXP_REPLACE(SUBSTR(col, 1, 500), ';[^;]*$', '') AS col_out
FROM yourTable;
这里的逻辑是首先使用
SUBSTR
截断到500个字符。然后我们通过删除最后的分号和后面的(可能是部分的)单词来删除任何可能的尾随词。@Proxonator抱歉…使用SUBSTR
。谢谢,这是我需要的。