regex - 正则表达式(第一次匹配后全部(没有第一次匹配))
问题描述
我正在努力使用简单的正则表达式。基本上我想要在没有“_”的“_”的第一场比赛之后的一切。
我现在的表达是这样的:_(.*)
当我提供输入时:AAA_BBB_CCC
输出是:_BBB_CCC
我理想的输出是:BBB_CCC
我正在使用带有内置正则表达式功能的雪花数据库。
不幸的是,我不能使用(?<=_).*
它,因为它不支持这种格式的“?<=”。有没有其他方法可以修改_(.*)
以获得正确的输出?
谢谢你。
解决方案
您可以使用正则表达式来实现这一点,例如 JavaScript 之类的东西就可以完成这项工作
"AAA_BBB_CCC".replace(/[^_]+./, '')
将 REGEXP_REPLACE 与雪花一起使用
regexp_replace('AAA_BBB_CCC','^[^_]+_','')
https://docs.snowflake.net/manuals/sql-reference/functions/regexp_replace.html
但您也可以找到_
所有语言的子字符串的第一个索引并使用它
let text = "AAA_BBB_CCC"
let index = text.indexOf('_')
if(index !== -1 && index < text.length) {
let result = text.substring(index+1)
}
推荐阅读
- javascript - 如何在 JQuery 中获取 select.options 的属性
- php - 无法从扩展类调用父类方法
- html - 显示/隐藏 iframe 直到被选中
- vb.net - 无法从文件中读取数据
- java - 如何从 application.properties 文件中获取测试用例的参数
- typescript - 如何避免在带有共享包的 monorepo 中跳转到 d.ts
- autohotkey - 如何使用自动键创建带有花括号的脚本
- c# - 将 SQL Server 数据转换为数组时,特定转换无效
- excel - 从 2 个输入日期获取所有 weeknums 并将它们放入一个数组中?
- javascript - setState() 上的 Highcharts 3D 渲染问题