我对 Oracle 的正则表达式有疑问。我在不同的桌子上有很多电话号码。现在我的任务是统一它们。所以我去掉了所有的空格、下划线、减号等等。但随后棘手的部分来了——起初这似乎很容易。
有带和不带国际代码的数字,例如 0046812345678 和 0812345678。所以我想用 '0046' 替换一个(!)前导零。我认为这^0(?=[1-9])
可以完成这项工作,但甲骨文似乎认为前瞻是无用的。
(^0)(1|2|3|4|5|6|7|8|9)
也不做这项工作(或(^01|02|03|04|05|06|07|08|09)
就此而言),因为它会将第一个非零数字替换为 0812345678 到 004612345678 (因此,第一个“8”消失)。
我搜索并尝试了很长时间,但无法提出更多的可能性。任何帮助将不胜感激。提前致谢!