如何利用oracle正则表达式去除字段中含有的汉字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用oracle正则表达式去除字段中含有的汉字相关的知识,希望对你有一定的参考价值。
去除字段中除字母和数字以外的汉字
参考技术A 我尝试着写了一个,如果都是只在前后有中文,那么这个应该可以。你试试,我这里可没有环境去测试。SELECT regexp_substr(changpai, '[[:alnum:]]+') FROM huishou.dx_new_car; 参考技术B 有like没有正则表达式 参考技术C select name, translate(name,'#'|| translate(name,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789','#') ,'/') newname from y_art_add; 参考技术D 我尝试着写了一个,如果都是只在前后有中文,那么这个应该可以。你试试,我这里可没有环境去测试。SELECTregexp_substr(changpai,'[[:alnum:]]+')FROMhuishou.dx_new_car; 第5个回答 2017-07-01 /^(\d)8$/
采纳我的吧。。
oracle 去掉字符,剩下数字
一个字段的值有:字母+汉字+数字+符号,只保留数字有什么函数没有。
实现的方法和详细的操作步骤如下:
1、第一步,新建一个测试表,见下图,转到下面的步骤。
2、第二步,执行完上面的操作之后,将测试数据插入,见下图,转到下面的步骤。
3、第三步,执行完上面的操作之后,查询表中数据,可以发现字段中带“-”字符,见下图,转到下面的步骤。
4、第四步,执行完上面的操作之后,编写sql,把字段中的字符‘-’去掉,代码见下图。这样,就解决了这个问题了。
参考技术A Oracle 正则表达式函数-REGEXP_REPLACE 使用例子http://hi.baidu.com/wangzhiqing999/blog/item/267c6dfefc700fcdb48f31c0.html
字母+汉字+数字+符号,只保留数字 只保留数字 == 把 字母+汉字+符号 替换为空 ''
替换数字
这个是把 字符串里面的 数字 替换为 'QQQ'
SELECT
REGEXP_REPLACE (a,'[0-9]+','QQQ') AS A
FROM
test_reg_substr;
你只需要稍微修改, 把 非数字的, 替换为 '' 应该就可以了。
SELECT
REGEXP_REPLACE (a, '[^0-9]+', '') AS A
FROM
test_reg_substr;
差不多是这个样子的。本回答被提问者采纳 参考技术B select translate( 字段 , 保留字段||字段 , 保留字段 ) from dual; 参考技术C 正则表达式 regexp_like 这个函数貌似是10G以上才支持追问
怎么只保留数字呢
追答regexp_like(v_USER_MOBILE,'^1[3|5|8][0-9]\d4,8$') --判断手机号是否合法 这是我知道一个判断手机号的正则表达式,你修改一下应该能用来判断数字,你应该懂正则表达式吧 我有点忘了,你搞一下应该没问题
以上是关于如何利用oracle正则表达式去除字段中含有的汉字的主要内容,如果未能解决你的问题,请参考以下文章