2016-05-25 2 views
-2

У меня есть различные строки. Я хочу проверить, является ли строка в первую очередь в формате xy:someword, а затем получить часть someword. xy должны быть символами от a до z.Строка parse regex в python

Например:

eu:road должен дать мне road

somestring 100 должен дать мне None

road:eu должен дать мне None

Как я могу осуществить это?

+0

использование шаблона ' '\ ш \ ш: \ ш +' '. Обратите внимание, что вы действительно должны попытаться реализовать его непосредственно ПЕРЕД тем, чтобы идти дальше, а затем, если вы не можете добиться успеха, покажите, что вы попробовали и спросили. –

+0

замените '^ [a-z] {2}: |. *' Пустым строком –

+0

Вам нужно использовать регулярное выражение? Не могли бы вы разделить на ':' и вернуть вторую половину, если первая половина всего 2 символа? – user987654321

ответ

1

Вы можете использовать регулярное выражение как ^[a-z]{2}:(\w+)$, а затем использовать group(1), чтобы получить содержание захвата группы ((...)):

>>> p = "^[a-z]{2}:(\w+)$" 
>>> re.match(p, "eu:road").group(1) 
'road' 
>>> re.match(p, "road:eu") 
None 
+0

Почему 'print re.search ('\ w \ w: (\ w +)', 'road: eu'). Group (1)' print 'eu'? – dimitris93

+0

@ Сиро, потому что вы пропустили якорь '^' –

+0

Ок. '^' является началом, а '$' является окончанием строки? – dimitris93