我在理解这个正则表达式的错误时遇到了问题:\?.*
select REGEXP_REPLACE(longstringcolumn, '\?.*', '') as newstring from tablename
我的示例字符串aka' longstring'有'?'性格,我试图匹配所有尾随'?' (包括'?'本身)。
我已经在线工具检查了我的regexpr,我的正则表达式似乎正在运行。
谢谢你这么快, 这是一个示例字符串(它是一个网址):
http://example.com/one/two/three?lang=en®ion=CN
我试图在'之后剥离一切?'。所以这一部分:
郎= EN&安培;区域= CN
这是我正在返回的错误:无法解析正则表达式"?":重复运算符没有参数:?
我真的倾向于这是一个简单的逃避角色问题,但我无法以某种方式解决这个问题。
答案 0 :(得分:3)
#standardSQL
SELECT REGEXP_REPLACE(longstringcolumn, '\\?.*', '') AS newstring
FROM tablename
或
#standardSQL
SELECT REGEXP_REPLACE(longstringcolumn, r'\?.*', '') AS newstring
FROM tablename
以下示例
#standardSQL
WITH tablename AS (
SELECT 'is this a question?abc ' AS longstringcolumn UNION ALL
SELECT 'this is not a question' union all
SELECT'http://example.com/one/two/three?lang=en®ion=CN'
)
SELECT REGEXP_REPLACE(longstringcolumn, r'\?.*', '') AS newstring
FROM tablename
结果为(其中?并删除所有尾随字符)
Row newstring
1 is this a question
2 this is not a question
希望这能显示原始查询的错误