我正在尝试找到一种解决方案,但是以某种方式我得到了错误的输出(参考了一些在线解决方案并使自己感到困惑。请告知我要去哪里了。
我需要删除任何非数字字符,破折号“-”或竖线“ |”使用plsql。
例如:
如果我需要过滤字符串String js = "arguments[0].style.display='block'";
((JavascriptExecutor) driver).executeScript(js, clientDropDown);
Select client = new Select(clientDropDown);
client.selectByVisibleText("DGX Client");
,则输出应为0094-78556232_imk*.ext|4444;
答案 0 :(得分:1)
使用REGEXP_REPLACE
:
SELECT
col,
REGEXP_REPLACE (col, '[^0-9|-]', '') AS col_updated
FROM yourTable;
答案 1 :(得分:0)
请勿使用regexp_replace
,尤其是在性能很重要的情况下。
请使用标准字符串函数TRANSLATE
。像这样:
select col,
translate(col, '0123456789|-' || col, '01234567890|-') as col_updated
from yourTable;
这将根据以下方案转换col
值中的每个字符:0
被转换为自身,....,-
被转换为自身。 col
中尚未在此列表中的任何其他字符都被“翻译”为任何内容,因为在该函数的第三个参数中没有任何要翻译的字符。因此,那些不在列表中的字符将从字符串中删除。