【发布时间】:2019-04-01 17:05:50
【问题描述】:
我有相当肮脏的客户地址数据。对于每个客户端,一个字符串中有 2 个或更多地址。在 Oracle 中使用正则表达式我想减去第一个。
如果有与';' 相同的分隔符,那就很容易了。但有时会有逗号。并且在地址中也使用逗号来分隔城市、街道和建筑物。
我有俄语地址,所以我为你翻译了。
例如,我有一个包含多个地址的字符串:
逗号是分隔符,但它也分隔地址内的块。
所以我可以通过匹配直到第二个'\sul\.' 的所有内容来匹配第一个地址。
但我不知道该怎么做。 Regexp_substr(address, '.*,\sul') 将返回
这远远不是我需要的。
那么我怎样才能减去直到第二个 ,\sul\. 的所有内容?
Russia, Moscow, ul. Tverskaya, d.32 应该被返回。
【问题讨论】:
-
,\sul无济于事,因为ul.是您要提取的第一个地址的一部分。除非您可以描述预期匹配的开始/结束上下文,否则没有解决方案。 -
你期望的结果是什么?
-
我期待俄罗斯,莫斯科,ul。特维尔,d.32