Regex 从字符串中删除前导字母字符的步骤
我必须忽略字符串中的前导零、前导/尾随空格、前导字母字符。请说明可以使用什么regexp 例如: 字符串是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
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].*$')
上述解决方案在数字内删除零,我只需删除前导零。