Найти - Пользователи
Полная версия: Регулярное выражение
Начало » Python для новичков » Регулярное выражение
1
igorakintev
Прошу помощи в составлении и так задача проверить на идентичность строку 4 цифры пробел/ы 6 цифр. Составил что-то типа

txt='1909 112233'

re1='(\\d{4})' # Integer Number 1
re2='(\\s+)' # White Space 1
re3='(\\d+)' # Integer Number 2

rg = re.compile(re1+re2+re3,re.IGNORECASE|re.DOTALL)
m = rg.search(txt)
if m:
int1=m.group(1)
ws1=m.group(2)
int2=m.group(3)
print “(”+int1+“)”+“(”+ws1+“)”+“(”+int2+“)”+“\n”

но работает не так как нужно прокатывают варианты с большим и меньшим количеством цифр
Mozart
import re
txt='1909 112233'
for i in re.findall(r"\d{4}\s+\d{6}", txt): print i

#1909 112233

Так что ли?
igorakintev
Mozart
import re
txt='1909 112233'
for i in re.findall(r"\d{4}\s+\d{6}", txt): print i

#1909 112233

Так что ли?
если будет передана строка txt='19093 112233'
то все равно вернет результат, надо именно 4 символа пробл\ы 6 символов
Mozart
for i in re.findall(r"^\d{4}\s+\d{6}$", txt): print i

Вернет результат, только если будет найдено точное вхождение.
igorakintev
Mozart
for i in re.findall(r"^\d{4}\s+\d{6}$", txt): print i

Вернет результат, только если будет найдено точное вхождение.
а как сделать так чтобы было точное совпадение ни символом больше, т.к это проверка документа, и 5 цифр в серии не должно быть, ну вы понимаете.


п.с. Туплю, видимо не правильно протестил, ваш, пошел читать мануалы сделал то же самое что и вы….))
Все ок работает, Спасибо огромное за помощь!.
Mozart
txt = ['1909    112233', '34354 33432432434', '3434 223456']

for i in txt:
if re.findall(r"^\d{4}\s+\d{6}$", i): print i

# 1909 112233
# 3434 223456

Все работает как нужно вроде
py.user.next
findall() там не подходит (режим не многострочный)

>>> import re
>>> 
>>> n4sn6 = re.compile(r'^\d{4}\s+\d{6}$')
>>> 
>>> lst = ['1909    112233', '34354 33432432434', '3434 223456']
>>> 
>>> valid = filter(n4sn6.match, lst)
>>> print(list(valid))
['1909    112233', '3434 223456']
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB