在oracle 9i中使用owa_pattern.change。
是否可以删除字符串中的数字和尾随特殊字符(仅记下尾随)特殊字符?
我将特殊字符称为既不是单词也不是数字的字符。 例如_,#,@,$ etc ......
例如。
String = TEST_STRING_10
所需的输出是TEST_STRING(注意只删除尾随的特殊字符_。)
我已经想出了如何删除号码但是卡在特殊字符部分。
到目前为止我有这个代码。
OWA_PATTERN.CHANGE (string, '\d', '', 'g');
感谢任何输入。
谢谢!
答案 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;