需要帮助成为"REGEXP_REPLACE“的新手。
当我这么做
SELECT REGEXP_REPLACE('7ELEVEN USA','[(\D^USA|^CANADA|^Canada)]','') "NAME" from dual我得到7 7ELEVE和你可以看到,最后一个字符N是失踪。
我想替换下面的第一个号码&显示7-11商店。
20991 7-ELEVEN STORE任何帮助都是非常感谢的。
预先感谢
发布于 2018-05-08 20:24:15
我想替换下面的第一个号码&显示7-11商店。 20991 7-11商店
那么,您甚至不需要正则表达式--好的、老的SUBSTR + INSTR可以很好地完成工作(这就是RES2)。如果您想要regexp,那么这个模式:^\d+执行它-它说:
^锚定到字符串的开头\d+把所有的数字都取下来(直到第一个非数字字符,也就是空格)。举个例子:
SQL> with test (col) as
2 (select '20991 7-ELEVEN STORE' from dual)
3 select
4 regexp_replace(col, '^\d+') res1,
5 substr(col, instr(col, ' ') + 1) res2
6 from test;
RES1 RES2
--------------- --------------
7-ELEVEN STORE 7-ELEVEN STORE
SQL>编辑
在您发布的第一个查询中(我不明白这是个问题):如果您想从该字符串中选择第一个“单词”,我不会使用REGEXP_REPLACE但是(REGEXP_)SUBSTR
SQL> with test (col) as
2 (select '7ELEVEN USA' from dual)
3 select regexp_substr(col, '\w+') res1,
4 substr(col, 1, instr(col, ' ') - 1) res2
5 from test;
RES1 RES2
------- -------
7ELEVEN 7ELEVEN
SQL>https://stackoverflow.com/questions/50241666
复制相似问题