我有一个像'00122021300123024'
我只想删除单个'0'
而不是'00'
意味着输出应该是'001222130012324'
[注意:我正在使用ORACLE 11g regexp_replace功能]
答案 0 :(得分:1)
如果您的语言支持look-aheads and -behinds,则可以使用:
(?<!0)0(?!0)
答案 1 :(得分:1)
无需环顾四周,搜索([123456789]|^)0([123456789]|$)
并替换$ 1 $ 2,其中$ 1是第一个捕获组,$ 2是第二个捕获组(或\ 1 \ 2)。
对于Oracle SQL:
select regexp_replace('00122021300123024', '([123456789]|^)0([123456789]|$)', '\1\2') from dual;
未经测试但应该可以使用。
答案 2 :(得分:0)
不确定你的编码语言是什么,但是如何在python中实现它:
In [1]: import re
In [2]: x = "00122021300123024"
In [3]: print x
00122021300123024
In [4]: x_after_replace = re.sub("(?<!0)0(?!0)", "", x)
In [5]: print x_after_replace
001222130012324