我有以下几种模式:
,并且只希望得到以下结果(因为Box 15,Bte 15是箱号,而我只希望房屋nbr +可能附在房屋号上的字母):
使用正则表达式可以吗?我尝试了以下操作:REGEXP_SUBSTR(my_string_variable, '^\d+(\s*\w$)?')
。但是,这仅适用于模式3-5,不适用于前2个和最后一个模式。从$
中删除regex
会错误地“剥离”模式5和6的第一个字母。
我基本上假设如果数字后面的字母超过1个字符,则该字母属于盒号。例如,BTE
是Boite
的法文缩写,表示Box
。我知道如果门牌号包含2个字母(例如:11个AA),这可能是无效的,但是我不知道解决方法,因此我认为这种情况很少发生。
答案 0 :(得分:1)
这将删除:一个空格,后跟一个大写字母,然后至少一个小写字母,然后是一个可选空格,后跟任意数量的数字:
RegExp_Replace(house_number, '\s[A-Z][a-z]+\s+\d+$')
请参见regex101.com