我有一个关于Oracle正则表达式的问题。我有许多不同表格中的电话号码。现在我的任务是将它们统一。所以我去掉所有空格、下划线、破折号等等。但是接下来就变得棘手了——这似乎一开始很容易。
电话号码既有国际代码,也有没有国际代码的,例如0046812345678和0812345678。因此,我想用'0046'替换一个单独的(!)前导零。我认为
我已经搜索并尝试了相当长的时间,但是无法想出更多的可能性。任何帮助都将不胜感激。提前致谢!
电话号码既有国际代码,也有没有国际代码的,例如0046812345678和0812345678。因此,我想用'0046'替换一个单独的(!)前导零。我认为
^0(?=[1-9])
可以完成工作,但Oracle似乎认为先行断言是无用的。(^0)(1|2|3|4|5|6|7|8|9)
也不能完成任务(或者说(^01|02|03|04|05|06|07|08|09)
),因为它会替换第一个非零数字,使0812345678变成004612345678(因此,第一个'8'消失了)。我已经搜索并尝试了相当长的时间,但是无法想出更多的可能性。任何帮助都将不胜感激。提前致谢!
^0([1-9])
和替换0046$1
或0046\1
或其他内容。 - Martin Ender^0([0-9]{9})$
和替换为'0046\1'
。 - shyam