2017-07-04 3 views
0
SELECT REGEXP_EXTRACT('name=北海道新幹線|gauge=1435|layer=2|usage=main|bridge=yes|', r'layer=(-?[0-9]+)|') AS Layer 

Ausbeute Null. währendGoogle BigQuery - Regex-Funktionen für UTF-8

select REGEXP_EXTRACT('layer=2|',r'layer=(-?[0-9]+)|') as layer 

das gewünschte Ergebnis liefern: 2

Ich vermute, die erste wegen utf-8 fehlgeschlagen Zeichen?

Wie extrahiere ich Layer-Informationen für die erste Zeichenfolge?

Antwort

1

Das nachfolgende | wird als ODER interpretiert. Sie müssen es mit einem Backslash entkommen, z.B .:

SELECT REGEXP_EXTRACT('name=北海道新幹線|gauge=1435|layer=2|usage=main|bridge=yes|', r'layer=(-?[0-9]+)\|') AS Layer 

Ohne den umgekehrten Schrägstrich, das zweite Beispiel, dass Sie funktioniert, weil die Regex als das Muster oder die leere Zeichenkette interpretiert wird.

Verwandte Themen