【发布时间】:2019-12-10 19:55:47
【问题描述】:
在 Bigquery 中,我试图找到一种方法来根据字符串前面有多少破折号来提取字符串的特定段。字符串中的总破折号数将始终相同。例如,我可以在以下字符串中查找第二个破折号之后和第三个破折号之前的字符串:
abc-defgh-hij-kl-mnop
目前,我正在使用以下正则表达式进行提取,它从后面计算破折号:
([^-]+)(?:-[^-]+){2}$
问题是,如果破折号之间没有任何内容,则正则表达式不起作用。例如,这样的事情返回 null:
abc-defgh-hij--mnop
有没有办法使用正则表达式在一定数量的破折号之后提取字符串并在随后的破折号之前将其切断?
谢谢!
【问题讨论】:
标签: sql regex google-bigquery