2014-11-09 2 views
4

Я не могу найти ответ в BigQuery Reference или re2 wiki.В чем смысл r в REGEXP_EXTRACT (word, r '( w w ' w w) ')

Во всех примерах для секции Regex в справочнике BigQuery перед каждым регулярным выражением есть «r», но я не могу найти смысла. Например:

REGEXP_EXTRACT (слово, г «(\ ш \ ш \» \ ш \ ш) «)

Мне кажется, как приведения типов из„регулярных выражений“или что-то, потому что это позволяет» \ 'и' '' в следующей строке.

Благодаря всем, кто знает и сообщения ответа на это :)

+3

Поиска по «сырой строке» - по крайней мере, это то, что это означает, что в Python. – Bergi

ответ

9

Материал из Википедии «Несколько языков обеспечивают способ определения того, что буквальное должен быть обработан без какого-либо конкретного языка интерпретации. Это позволяет избежать необходимости для побега и дает более четкие строки ».

http://en.wikipedia.org/wiki/String_literal#Raw_strings

Например, это выглядит как действительное регулярное выражение, но ускользает получить промах интерпретированы:

SELECT REGEXP_EXTRACT("ab'cd", '(\w\w\'\w\w)') 

Error: Invalid string literal: '(\w\w\'\w\w)' 

я могу это исправить двумя способами. С сырой строкой, или спасаясь побеги:

Спасаясь побегами:

SELECT REGEXP_EXTRACT("ab'cd", '(\\w\\w\'\\w\\w)') 
ab'cd 

Сырых строки:

SELECT REGEXP_EXTRACT("ab'cd", r'(\w\w\'\w\w)') 
ab'cd 
Смежные вопросы