如何利用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正则表达式去除字段中含有的汉字的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式去除中文sql

如何查出在oracle 表中的某个字段中符合以下要求:包括除汉字、数字、字母、中画线、括弧外的其它字符

oracle 去掉字符,剩下数字

java如何去除字符串中的空格并且计算字符串中汉字的个数

正则表达式如何匹配汉字?

SUBLIME 正则表达式,如何匹配每行出现的第一个汉字