我对oracle中的regexp_substr还是比较陌生。我只想从下面的字符串中提取字母数字字符。我已经在下面的查询中使用过,但它似乎没有按预期工作。

select
    regexp_substr('Save up to 10% on National Brands and 20% on Quill Brand Laser Toner','[[:alnum:]]+') string
from dual;


我希望输出看起来像这样


节省多达10个民族品牌和20个Quill品牌激光碳粉


要么


保存到国家品牌上的10上,而Quill品牌激光上的20上的碳粉


提前致谢。 :)

最佳答案

我认为您正在寻找regexp_replace

select
    regexp_replace('Save up to 10% on National Brands and 20% on Quill Brand Laser Toner',
                 '[^[:alnum:]]', '') string from dual;


SQL Fiddle

关于sql - 如何使用正则表达式选择字母数字字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27872353/

10-10 03:30