想从字符串中删除以下类型的字符..pl help ' &
问问题
1144 次
2 回答
0
你可以试试这个来删除任何 HTML 特殊字符:
select REGEXP_REPLACE( 'abc&def³»ghi', '&[^&]+;', '!' );
解释:
REGEXP_REPLACE 使用正则表达式进行搜索和替换。我搜索“&[^&]+;” 并将其替换为“!” 进行演示。您当然可以使用 '' 删除它们。有关该功能的更多信息:
https://docs.snowflake.com/en/sql-reference/functions/regexp_replace.html
关于正则表达式字符串:
- & 是 HTML 特殊字符的 & 字符
- [^&] 表示除 & 之外的任何字符。这可以防止 REGEXP 替换第一个 '&' 字符和最后一个 ';' 之间的所有字符。当它看到第二个'&'时它会停止
- + 表示匹配 1 个或多个前面的标记(除 & 之外的任何字符)
- ; 是 HTML 特殊字符的最后一个字符
于 2020-06-10T08:16:39.453 回答
0
CREATE or REPLACE FUNCTION UDF_StripHTML(str varchar)
returns varchar
language javascript
strict
as
'var HTMLParsedText=""
var resultSet = STR.split(''>'')
var resultSetLength =resultSet.length
var counter=0
while(resultSetLength>0)
{
if(resultSet[counter].indexOf(''<'')>0)
{
var value = resultSet[counter]
value=value.substring(0, resultSet[counter].indexOf(''<''))
if (resultSet[counter].indexOf(''&'')>=0 && resultSet[counter].indexOf('';'')>=0)
{
value=value.replace(value.substring(resultSet[counter].indexOf(''&''), resultSet[counter].indexOf('';'')+1),'''')
}
}
if (value)
{
value = value.trim();
if(HTMLParsedText === "")
{
HTMLParsedText = value
}
else
{
if (value) {
HTMLParsedText = HTMLParsedText + '' '' + value
}
}
value=''''
}
counter= counter+1
resultSetLength=resultSetLength-1
}
return HTMLParsedText';
to call this UDF :
Select UDF_StripHTML(text)
于 2021-06-08T15:12:14.797 回答