我正在尝试使用 Regexp_substr 从属性字段中提取单位编号。下面是查询。
regexp_substr(PROPERTY,'(#)[^\S]+ ')
虽然有些结果是正确的,但其他结果如下所示:
#05-08 DOVER PARKVIEW
我可以知道我需要做什么来省略所有的字母或措辞吗?谢谢你。
我正在尝试使用 Regexp_substr 从属性字段中提取单位编号。下面是查询。
regexp_substr(PROPERTY,'(#)[^\S]+ ')
虽然有些结果是正确的,但其他结果如下所示:
#05-08 DOVER PARKVIEW
我可以知道我需要做什么来省略所有的字母或措辞吗?谢谢你。
该[^\S]
模式匹配除 a\
和大写字母之外的任何字符S
。
您需要-
在 a 之后捕获 1+ 个数字,然后再捕获 1+ 个数字,并#
仅使用
regexp_substr(PROPERTY, '#(\d+-\d+)', 1, 1, NULL, 1)
最后一个1
参数告诉正则表达式引擎提取 ID 为 1 的捕获组的内容(无论如何它是模式中唯一的捕获组)。
#
- 文字#
(\d+-\d+)
- 捕获组 1 匹配:
\d+
- 1 位或多位数字-
- 一个连字符\d+
- 1 个或多个数字。查看在线演示:
select regexp_substr('#05-08 DOVER PARKVIEW', '#(\d+-\d+)', 1, 1, NULL, 1) as RESULT from dual