Sql Regexp_Extract BigQuery任何高达|&引用;

Sql Regexp_Extract BigQuery任何高达|&引用;,sql,string,google-bigquery,Sql,String,Google Bigquery,我对编码相当陌生,我想知道您是否可以帮我为BigQuerySQL编写一些正则表达式 基本上,我想为我的一个列提取条形符号“|”之前的所有内容 例如: 源字符串: 布拉布拉布拉cid=123456_sept1220_布拉布拉布拉——土豆布拉布拉|还有一些东西我不需要 期望输出: 布拉布拉布拉cid=123456_sept 1220_布拉布拉布拉——土豆布拉 我曾想过使用REGEXP_EXTRACT(string,delimiter)函数,但我完全无法编写一些regex(LOL)。因此,我查

我对编码相当陌生,我想知道您是否可以帮我为BigQuerySQL编写一些正则表达式

基本上,我想为我的一个列提取条形符号“|”之前的所有内容

例如:

  • 源字符串: 布拉布拉布拉cid=123456_sept1220_布拉布拉布拉——土豆布拉布拉|还有一些东西我不需要

  • 期望输出: 布拉布拉布拉cid=123456_sept 1220_布拉布拉布拉——土豆布拉

我曾想过使用REGEXP_EXTRACT(string,delimiter)函数,但我完全无法编写一些regex(LOL)。因此,我查看了堆栈,发现了如下内容:

SELECT REGEXP_EXTRACT( String_Name , "\S*\s*\|" ) ,
# or 
SELECT REGEXP_EXTRACT( String_Name , '.+?(?=|)')
但每次我收到诸如“无效perl运算符:(?=”或“非法转义空间”之类的错误消息时

关于我为什么会收到这些消息和/或如何提取这些字符串,您有什么建议吗

提前多谢您可以使用:


在模式字符串前面加上
r

SELECT REGEXP_EXTRACT(String_Name, r'\S*\s*\|')

这是原始字符串常量的语法。您可以在中查看它的含义。

谢谢!不幸的是,这给了我一个错误:无法解析正则表达式:无效的perl运算符:(= AlexandraMorel Fonteray……这是一个不同的问题,BQ正则表达式没有反向引用。我打算抓住这个例子的第一个正则表达式。是的!它起作用了!非常感谢。然后考虑接受和投票:)
SELECT REGEXP_EXTRACT(String_Name, r'\S*\s*\|')