sql - 正则表达式:从地址中提取门牌号
问题描述
我有以下模式:
- 13 转 2
- 48 B / 5
- 42乙
- 42B
- 303 框 15
- 303 比特币 15
- 303 乙 15
并且只想得到以下结果(因为 Box 15, Bte 15 是箱号,我只想要房子 nbr + 可能是附加到门牌号的字母):
- 13 转 2
- 48 B / 5
- 42乙
- 42B
- 303
- 303
- 303乙
这可以使用正则表达式吗?我尝试了以下方法:REGEXP_SUBSTR(my_string_variable, '^\d+(\s*\w$)?')
。然而,这仅适用于模式 3-5,而不适用于前 2 个和最后一个模式。$
从 中删除regex
将错误地“剥离”模式 5 和 6 的第一个字母。
我基本上假设如果数字后面的字母超过 1 个字符,则它属于箱号。例如,BTE
是法语的缩写Boite
,意思是Box
。我意识到如果门牌号有 2 个字母(例如:11 AA),这可能是无效的,但我不知道解决方案,我认为它不会发生太多。
解决方案
这将删除:一个空格,后跟一个大写字母,后跟至少一个小写字母,后跟一个可选空格,后跟任意数量的数字:
RegExp_Replace(house_number, '\s[A-Z][a-z]+\s+\d+$')
推荐阅读
- r - Rf_lang2 和 Rf_lang3 的定义在哪里?
- c++ - c++ 错误:“数组必须用大括号括起来的初始化程序初始化”
- python-3.x - 辅助编写函数以在 python 中列出 api 查询
- angular - 用 Angular 构建一个聊天应用程序,试图让它每当输入 @ 字符时,用户组列表就会出现在 @ 符号上方
- javascript - npm install 在 react 项目中抛出一堆错误
- python - 分离数据帧纬度/经度对并根据列值绘制多个图形
- jquery - Rails 6 和 Jquery 插件错误:$(...).validate 不是函数
- java - Maven 不会运行 JUnit5 测试
- android - 如何在我的 Android Studio 项目中单击登录表单中的按钮
- python - 将列表中的项目分组并计算总和