使用owa_pattern删除数字和特殊字符

时间:2014-04-22 17:32:48

标签: regex oracle plsql toad plsqldeveloper

在oracle 9i中使用owa_pattern.change。

是否可以删除字符串中的数字和尾随特殊字符(仅记下尾随)特殊字符?

我将特殊字符称为既不是单词也不是数字的字符。 例如_,#,@,$ etc ......

例如。

String = TEST_STRING_10

所需的输出是TEST_STRING(注意只删除尾随的特殊字符_。)

我已经想出了如何删除号码但是卡在特殊字符部分。

到目前为止我有这个代码。

OWA_PATTERN.CHANGE (string, '\d', '', 'g');

感谢任何输入。

谢谢!

2 个答案:

答案 0 :(得分:1)

请尝试以下操作。

OWA_PATTERN.CHANGE (string, '[^a-zA-Z]+$', '');

正则表达式

[^a-zA-Z]+    any character except: 'a' to 'z', 'A' to 'Z' 
              (1 or more times (matching the most amount possible))
 $            before an optional \n, and the end of the string

答案 1 :(得分:0)

这样做:

DECLARE
    result VARCHAR2(255);
BEGIN
    string := 'TEST_STRING_10';
    result := REGEXP_REPLACE(string, '([[:alnum:]_].*)_[[:digit:]]+', '\1', 1, 0, 'c');
END;