【问题标题】:Substring in PostgresqlPostgresql 中的子字符串
【发布时间】:2021-04-19 19:16:37
【问题描述】:

我有一个简单的问题。 我正在研究一些 SQL 练习,其中之一是我需要从街道名称中删除数字。

例如:

  • 5026 S CRENSHAW BLVD - 应该是 CRENSHAW

  • 2635 WHITTIER BLVD - 应该是 WHITTIER

  • 308 WESTWOOD PLZ # 1390L - 应该是 WESTWOOD

  • 1111 WILSHIRE BLVD - 应该是 WILSHIRE

那么,对待上面地址的答案是这样的:

substring(facility_address FROM '[\d]+\s?\w?\s([\w]+)\s?')

我想了解子字符串是如何工作的,它是什么意思 de [\D] 等等。

谁能解释一下? 真的非常感谢! :)

【问题讨论】:

标签: sql postgresql substring


【解决方案1】:

你应该阅读正则表达式。

'[\d]+\s?\w?\s([\w]+)\s?' 是一个正则表达式。

我会尝试分解它:

首先,这些是量词:

+ 表示一个或多个

? 表示一个或没有

现在是正则表达式:

[\d]+ 匹配一位或多位数字。我认为这里实际上不需要方括号。

\s? 可选地匹配一个空白字符(可选地意味着它可能存在也可能不存在)

\w? 可选匹配单词字符

\s 匹配一个空白字符,但这次不是可选的,因为末尾没有?

([\w]+) 匹配一个或多个单词字符。注意表示所谓的“捕获组”的括号。括号内的所有内容实际上都是由 substring 函数返回的。

【讨论】:

    猜你喜欢
    • 2022-06-21
    • 2020-03-26
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 2016-03-24
    • 2022-01-18
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多