2012-04-27 3 views
0

Как анализировать это регулярное выражение в python?Regex string retrieval in python

Здесь мне нужно разобрать строку «чудотворцев» между «С» и «отметкой даты и время» в эффективном способе.

s = """ 
     business hours. Keyword Search: Sales, Operations, Director, Medical, Medical Devices, DME, Respiratory Equipment, Sales Rep, Account Executive, Exec, Business... <br /> 
      From Miracle Workers - 26 Apr 2012 08:45:15 GMT 
      - View all <a href="http://www.indeed.com/l-Houston,-TX-jobs.html">Houston jobs</a> 
    """ 

Это регулярное выражение, которое я делаю. Мне нужно получить эффективное регулярное выражение.

regex1 = re.findall('From\ ([A-Za-z\ ]+)\-',s) 
    ['Miracle Workers '] 

Извлечь другую строку из url.

s2 = http://www.indeed.com/job/Region-Manager-Field-Sales-at-Covidien-in-Atlanta,-GA-a1a421aabb4d54a7" 
    regex2 = re.findall('-in-([A-Za-z-]+),-([A-Z]{2})',str(job.url))[0] 

Здесь я получаю два кортежа, как ('Атланта', 'GA') вместо того, что нужно, чтобы получить "Atlanta, GA"

Как это должен делать, чтобы получить приводит к эффективному действию при любых обстоятельствах?

ответ

1

Используя(), вы группируете результаты, таким образом, findall дает вам кортеж. Попробуйте это регулярное выражение (без группировки):

regexp = '-in-[A-Za-z-]+,-[A-Z]{2}' 
+0

«-in-Atlanta, -Ga» выход становится как that.fine.Is это штрафовать мое регулярное выражение для первой строки Будет ли она работать на любых условиях? – Nava

+0

Эта строка будет всегда на английском языке? В этом случае я так думаю, но лучше, чем [A-Za-z \], используйте [A-Za-z \ s] + или, по крайней мере, [A-Za-z \ \ t] или [\ w \ t] + (зависит от ожидаемого ввода) –