regex - 蜂巢字符串提取
问题描述
我有一列具有类似https://ysd.com/ert490ghlkh/gsum的值
我想获取 aftercom/
和 before的所有字符/gsum
。事先,我知道在 .com/ 之后要获取多少个字符。就像我知道 11 个字符必须在.com
.
我试过了
REGEXP_REPLACE(REGEXP_REPLACE(column1, 'https://ysd.com/', ''), '/gsum', '')
这似乎并不理想,因为最后一部分/gsum
可能会有所不同。在这种情况下,我必须编写不等于唯一最后一部分的 case 语句。
谁能说如何在特定子字符串之后获取任何字符?
解决方案
您可以使用
REGEXP_REPLACE(column1, 'https://ysd\\.com/([^/]+).*', '\\1')
查看正则表达式演示
细节
https://ysd\\.com/
- 一个https://ysd.com/
字符串([^/]+)
- 第 1 组(\1
是对替换模式中使用的组值的反向引用):除此之外的任何一个或多个字符/
.*
- 尽可能多的除换行符以外的任何 0 个或多个字符。
推荐阅读
- c++ - 如何使用递归打印修改后的星号三角形图案?
- sql - 如何从shell提示符将oracle sql脚本文件的参数传递给sqlplus?
- azureservicebus - 将 SAS 令牌与 Azure ServiceBus 一起使用
- terraform - 在 Terraform 文档中使用 remote-exec 进行实例配置在 MacOS 上不起作用。错误:超时
- powershell - PowerShell 脚本存在带方括号的文件名问题
- list - 显示高分列表以显示 Surface Pygame
- ruby-on-rails - 在 Rails MongoDB 中对 WHERE 使用身份验证函数会引发错误
- google-cloud-platform - 我是否会为在我关闭的项目中运行的 VM 实例付费?
- c++ - QPainter::drawImage 是阻塞调用吗?
- haskell - Haskell 流 - 如何在复制后将 1 个流分成 2 个?