PostgreSQL 截断字符串: 从指定关键字开始删除 (substring, regexp_replace)
PostgreSQL 截断字符串: 从指定关键字开始删除
在 PostgreSQL 中,你可以使用 substring 和 regexp_replace 函数来从指定的关键字开始截断字符串。
使用 substring 函数截断第一个匹配的关键字后的数据
substring 函数允许你根据正则表达式提取字符串的一部分。
示例:
假设你有一个名为 my_table 的表,其中包含一个名为 my_column 的列。 你想要截断关键字 'keyword' 后面的数据。
SELECT substring(my_column FROM '^(.*?)keyword') AS truncated_data
FROM my_table;
解释:
substring(my_column FROM '^(.*?)keyword'): 这段代码从my_column中提取匹配正则表达式'^(.*?)keyword'的部分。^(.*?)keyword: 这个正则表达式匹配从字符串开头到关键字 'keyword' 的任何字符。(.*?)部分使用非贪婪匹配捕获关键字前的所有字符。AS truncated_data: 这部分将提取的结果重命名为 'truncated_data'。
使用 regexp_replace 函数截断所有匹配的关键字后的数据
regexp_replace 函数允许你根据正则表达式替换字符串的一部分。
示例:
如果你想截断所有匹配到的 'keyword' 之后的数据,可以使用 regexp_replace 函数:
SELECT regexp_replace(my_column, 'keyword.*$', '') AS truncated_data
FROM my_table;
解释:
regexp_replace(my_column, 'keyword.*$', ''): 这段代码将my_column中匹配正则表达式'keyword.*$'的部分替换为空字符串 ('')。keyword.*$: 这个正则表达式匹配从关键字 'keyword' 到字符串结尾的所有字符。AS truncated_data: 这部分将替换后的结果重命名为 'truncated_data'。
总结:
通过使用 substring 和 regexp_replace 函数,你可以灵活地截断 PostgreSQL 中的字符串。 选择哪种方法取决于你的具体需求,例如是否需要截断所有匹配的关键字或仅截断第一个匹配的关键字。
原文地址: https://www.cveoy.top/t/topic/fouB 著作权归作者所有。请勿转载和采集!