我正在尝试使用teradata regex_replace
删除以单词DOCNAME
开头并以字符;
这是我试过的
SEL REGEXP_REPLACE(txt, 'DOCNAME(.*?);','',1,0,'i') new_txt
FROM testTable
;
但这并没有做任何事情。问题出在哪儿 ?
这是我的字符串
PUBLIC(verify nbr); OWNER(test schedule); DOCNAME(infrastructure); OWNER(get inventory); DOCNAME(null); DOCNAME(inventory); PRAC(inventory);
上面的查询返回相同的字符串,但我需要删除DOCNAME(...);
(上面有3个文档名,都需要删除)
答案 0 :(得分:0)
你需要在parens前面加一个反斜杠才能使正则表达式引擎看到文字字符,否则正则表达式引擎认为你正在定义一个组。试试这个:
SEL REGEXP_REPLACE(txt, 'DOCNAME\(.*?\);','',1,0,'i') new_txt
FROM testTable
;
请注意,这将在剩余的列表元素之间留出2个空格。我怀疑它并不重要,但如果确实如此,您需要在REGEXP_STRING的开头或结尾添加一个空格。
另请注意,如果REGEXP_REPLACE似乎没有做任何事情,那么正则表达式找不到匹配项并返回原始输入字符串。如果你确定输入是正确的,这就是你的regexp_string错误的线索。