2016-06-16 3 views
-2

Я выполняю этот запрос в python. Я получаю сообщение об ошибке «Недопустимый строковый литерал» в части регулярного выражения. Я знаю это регулярное выражение, не знаю, какой синтаксис здесь отсутствует. Любая помощь будет оценена по достоинству.SQL с регулярными выражениями в python

import pandas as pd 
import numpy as np 
import datetime 
from time import gmtime, strftime 
import smtplib 
import sys 
from IPython.core.display import HTML 

PROJECT = 'server' 

queryString = ''' 

SELECT 
    mn as mName, 
    dt as DateTime, 
    ip as LocalIPAddress, 
    REGEXP_EXTRACT(path, 'ActName:([\s\S\w\W]*?)ActDomain:') AS ActName, 
FROM Agent.Logs 

''' 
+1

Давненько я запустил Python, но вы пробовали размещение «г» в начале строки, она заставляет буквальной интерпретация обратной косой черты. – SteveJ

+0

Да, я пробовал это \t REGEXP_EXTRACT (путь, 'Имя учетной записи: (r' [\ s \ S \ w \ W] *?) Домен учетной записи: ') AS AccountName. Это тоже не работает. – user3447653

+0

Что вы пытаетесь точно сопоставить? И 'r' должно быть до' 'AccountName'''' '\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \" –

ответ

1

Вы упускаете r

REGEXP_EXTRACT(path, r'ActName:([\s\S\w\W]*?)ActDomain:') AS ActName

+0

Не работает. Этот запрос выполняется в ноутбуке IPython, но теперь я пытаюсь преобразовать его в скрипт Python, я получаю сообщение об ошибке в части регулярного выражения. – user3447653

+0

Какая ошибка и с чем вы пытаетесь соответствовать? Пожалуйста, поместите это в свой вопрос, а не в комментарии. –

+0

Ошибка «Недопустимый строковый литерал». Я пытаюсь извлечь строку, которая находится между строками «Actname» и «ActDomain». – user3447653

Смежные вопросы