Regex 正则表达式:替换char';0';一串
我有一个类似于Regex 正则表达式:替换char';0';一串,regex,Regex,我有一个类似于'0012202130012324' 我只想删除单个'0'而不是'00'意味着输出应该是'00122213012324' [注意:我正在使用ORACLE 11g regexp_replace函数]如果您的语言支持,您可以使用: (?<!0)0(?!0) (?不环顾四周,搜索([123456789]|^)0([123456789]|$)并替换为$1$2,其中$1是第一个捕获组,$2是第二个捕获组(或\1\2) 对于Oracle SQL: select regexp_repla
'0012202130012324'
我只想删除单个'0'
而不是'00'
意味着输出应该是'00122213012324'
[注意:我正在使用ORACLE 11g regexp_replace函数]如果您的语言支持,您可以使用:
(?<!0)0(?!0)
(?不环顾四周,搜索([123456789]|^)0([123456789]|$)
并替换为$1$2,其中$1是第一个捕获组,$2是第二个捕获组(或\1\2)
对于Oracle SQL:
select regexp_replace('00122021300123024', '([123456789]|^)0([123456789]|$)', '\1\2') from dual;
未经测试,但应能正常工作。不确定您的编码语言,但以下是如何在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
[1]中的:导入re
在[2]中:x=“0012202130012024”
在[3]中:打印x
00122021300123024
[4]中:替换后的x_=re.sub(“(?关于三重0呢?例如000你能更具体地说明你使用的是什么语言吗?我使用的是ORACLE 11g regexp_replace。你能解释一下吗。它对我不起作用。@vikash:我不知道他们使用的是什么regex风格,也不知道这个函数应该如何调用,所以不,我不能给你更多的信息。它可能非常有用很可能它们不支持lookaround,但是应该在文档的某个地方描述它(以及如何调用该函数)。寓意:始终从一开始就说明您正在处理的语言/regex味道。ORACLE 11g regexp|u replace不支持环顾四周。请参见下面的我的答案。不太值得单独回答,但更简洁的版本是([1-9]|^)0([1-9]|$)
确实是:)忘记了破折号