2014-10-23 4 views
0

Домашнее задание: Вставьте строку регулярных выражений (только строку), которая будет соответствовать любому числу единиц и нулям (даже без единиц и нулей), за которыми следуют ровно три нуля. Например, для строки,Python Regex String

"101000100 00101000 1010 1000" 

ваш шаблон регулярного выражения должны дать три матча (с использованием FindAll()):

['101000', '00101000', '1000'] 

Мой ответ был:

r"[10]*1000" 

но это Безразлично» Кажется, это тот ответ, который они хотят. Какие-либо предложения?

+1

У вашего регулярного выражения '1000' в конце, а не' 000' – anubhava

+0

Пробовали ли вы какие-либо тесты? –

+0

Yeh я сделал. Есть несколько методов, которые дают правильный ответ. Проблема была в том, как я входил в свой ответ. Просто нужно было ввести: «[10] * 0 {3}" – Newbie

ответ

1

Я думаю, что вы хотите что-то вроде этого,

>>> s = "101000100 00101000 1010 1000" 
>>> m = re.findall(r"\b[10]*?000\b", s) 
>>> m 
['101000', '00101000', '1000'] 
  • \b граница Слово, которое соответствует между характером слова и без слов характер.
  • [10]*? Матч 0 или 1 ноль или более раз (минимальное совпадение).
  • 000 Ровно три нуля.
  • \b И после согласованных 0 должно следовать граница слова.
+1

Это был вопрос о домашнем задании, о котором я думаю, ОП просто нуждался в некоторых рекомендациях по исправлению своего регулярного выражения. – anubhava

+1

Спасибо, что объясняет это хорошо. – Newbie