我想删除表格列中的一个字符串及其内容中的括号。我使用的是 Presto/Trino SQL。
示例字符串:
'Apple not found for (1) tree on farm (123) on highway (99)'.
预期输出:
'Apple not found for tree on farm on highway 。
目前的假设查询是:
选择
苹果字符串
从 appletable
</pre
可以使用
regexp_replace
函数来删除 Presto/Trino SQL 中的字符串及其括号内的内容。
SELECT
regexp_replace(apple_string, '(\s*\([^)]*\))', '') AS cleaned_string
FROM appletable;
解释:
-
regexp_replace(string, pattern, replacement)
:这个函数在string
中查找匹配pattern
的部分,并将其替换为replacement
。 -
(\s*\([^)]*\))
:这是正则表达式,用于匹配字符串中的括号及其内容。-
\s*
:匹配零个或多个空格字符。 -
\(
:匹配左括号。 -
[^)]*
:匹配除右括号以外的任何字符,零次或多次。 -
\)
:匹配右括号。 -
整个表达式用括号
()
包裹起来,表示这是一个捕获组。
-
-
''
:这是一个空字符串,用作替换,这意味着将删除匹配的部分。
应用于的示例:
这个查询将把
'Apple not found for (1) tree on farm (123) on highway (99)'
转换为
'Apple not found for tree on farm on highway '
。