|
Тема |
Re: Задачка за регулярен израз [re: Пиprиш] |
|
Автор |
Labrett (трън) |
|
Публикувано | 07.03.04 18:46 |
|
|
Тази задачка ми хареса :)
Ето ти я на python:
import re
str = '101001010100 ...'
pattern = r'(?:.*[^01].*)|0'
tup = re.subn(pattern, '', str)
if (tup[1] > 1) and (!(tup[1]%2)) and (!(len(tup[0]) % 2)):
-> отговаря
else:
-> не отговаря
Пояснявам какво прави - r'(?:.*[^01].*)|0' ще match-не целия стринг ако в него има други неща освен нули и единици, в противен случай ще match-ва нулите.
subn() замества всеки match в стринга със стринг, посочен като втори параметър, в случая - празен стринг. Връща tupple, в който първият член е получаващият се стринг (само единици, които можем да видим дали са четен брой), а вторият - броя замествания, които също проверяваме за четност. В случай, че в стринга е имало нещо друго освен нули и единици, резултатът е ('', 1) и проверката също fail-ва.
______________
Ако искаш изненада, защо просто не се влюбиш?Редактирано от Labrett на 07.03.04 18:52.
|
| |
|
|
|