BigQuery regexp_instr 函数中的正则表达式
Regex in BigQuery regexp_instr function
我想通过 BigQuery 上的 REGEXP_INSTR 函数识别以下字符串:
2020-12-31T23:00:00.000Z;15,2021-12-31T23:00:00.000Z;271,2022-12-31T23:00:00.000Z;12,...
输入字符串是一个由“,”分隔的对(datetime/integer 值)列表,其中每个对元素由“;”分隔。
我的第一次(不成功的)迭代是:
'^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z;\d*)+,?'
我无法正确管理“列表”,在列表的最后一个元素之后可能不需要“,”。
你能帮我构建正则表达式模式吗?
非常感谢您的帮助:)
您可以匹配第一部分,并可选择重复前面有 ,
的整个部分,这样它就不会匹配最后一个逗号。
如果末尾不能有 .
,您可以将 $
附加到模式以断言字符串的末尾。
注意转义点\.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z;\d*(?:,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z;\d*)*
使用双转义反斜杠
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z;\d*(?:,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z;\d*)*
我想通过 BigQuery 上的 REGEXP_INSTR 函数识别以下字符串:
2020-12-31T23:00:00.000Z;15,2021-12-31T23:00:00.000Z;271,2022-12-31T23:00:00.000Z;12,...
输入字符串是一个由“,”分隔的对(datetime/integer 值)列表,其中每个对元素由“;”分隔。
我的第一次(不成功的)迭代是:
'^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z;\d*)+,?'
我无法正确管理“列表”,在列表的最后一个元素之后可能不需要“,”。
你能帮我构建正则表达式模式吗?
非常感谢您的帮助:)
您可以匹配第一部分,并可选择重复前面有 ,
的整个部分,这样它就不会匹配最后一个逗号。
如果末尾不能有 .
,您可以将 $
附加到模式以断言字符串的末尾。
注意转义点\.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z;\d*(?:,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z;\d*)*
使用双转义反斜杠
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z;\d*(?:,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z;\d*)*