Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 从字符串中删除前导字母字符的步骤_Regex_Oracle - Fatal编程技术网

Regex 从字符串中删除前导字母字符的步骤

Regex 从字符串中删除前导字母字符的步骤,regex,oracle,Regex,Oracle,我必须忽略字符串中的前导零、前导/尾随空格、前导字母字符。请说明可以使用什么regexp 例如: 字符串是abc123abc,然后需要返回123abc。 现在我用 REGEXP_SUBSTR('abc123abc','([1-9]+[0-9]*)( *)$') 但它对我来说返回null。类似这样的东西 SQL> with test (col) as 2 (select 'abc123abc' from dual union all 3 select ' 1234

我必须忽略字符串中的前导零、前导/尾随空格、前导字母字符。请说明可以使用什么regexp

例如: 字符串是
abc123abc
,然后需要返回
123abc
。 现在我用

REGEXP_SUBSTR('abc123abc','([1-9]+[0-9]*)( *)$') 
但它对我来说返回null。

类似这样的东西

SQL> with test (col) as
  2    (select 'abc123abc'  from dual union all
  3     select ' 1234ddc'   from dual union all
  4     select '0abcd'      from dual union all
  5     select '18858 '     from dual union all
  6     select 'ab123ab45'  from dual
  7    )
  8  select col, trim(regexp_replace(col, '^[[:alpha:]]+| |0')) result
  9  from test;

COL       RESULT
--------- ---------
abc123abc 123abc
 1234ddc  1234ddc
0abcd     abcd
18858     18858
ab123ab45 123ab45

SQL>
瓦伊什, 正则表达式应该是这样的

这将做什么,它将删除任何前导空格,前导零

查询示例:
从dual中选择REGEXP_SUBSTR('abc123abc','[1-9]+.')

你可以看到我在这里尝试过的一些例子,另外你也可以在这里测试更多。

正则表达式:
'[1-9]+.*'

说明:
[1-9]
-这将查找要开始的号码。不包括0。
+
-量词+表示1个或多个。
-表示之后的任何内容。
*
-表示0或更多。(如果您认为至少需要数字之后的内容,可以将其替换为
+
。)


祝你好运

(.*)
替换
(*)
?这就足够了吗?:
REGEXP_SUBSTR('abc123abc','[1-9].*$')
上述解决方案在数字内删除零,我只需删除前导零。