Форум сайта python.su
Всем привет
есть код
import re
c_false = "12 qweasdzxcasd 32"
c_true = "Ivan Petrovich Sidorov"
re_exp = r"\w+"
print re.compile(re_exp).findall(c_false)
Отредактировано (Май 3, 2010 20:12:25)
Офлайн
if re.match(r'^[A-Z][a-z]+\s[A-Z][a-z]+\s[A-Z][a-z]+$',c_true): print 'yes'
Офлайн
o7412369815963Спасибо. Подскажите почему следующий код не работает для юникода?тут ещё проверка что-б первая буква слова была большаяif re.match(r'^[A-Z][a-z]+\s[A-Z][a-z]+\s[A-Z][a-z]+$',c_true): print 'yes'
# -*- coding: utf-8 -*-
import re
c_false = "12 qweasdzxcasd 32"
#c_true = "Ivan Petrovich Sidorov"
c_true = u"Иван Петрович Сидоров"
if re.match(r'^[A-Z][a-z]+\s[A-Z][a-z]+\s[A-Z][a-z]+$',c_true, re.UNICODE ):
print 'yes'
else:
print 'no'
Отредактировано (Май 4, 2010 19:21:31)
Офлайн
для русского алфавита нужно добавлять А-Я
Офлайн
уберите контроль регистра re.compile(pattern, re.IGNORECASE), что вы мучаетесь
>>>как исключить захват цифр?
не читаю что там по тексту, но исключить символы можно так это будет (не путать с началом строки ^)
Отредактировано (Май 4, 2010 17:24:10)
Офлайн
misha111> тут ещё проверка что-б первая буква слова была большая
уберите контроль регистра re.compile(pattern, re.IGNORECASE), что вы мучаетесь
Офлайн
извините за тупость , но почему следующий код возвращает отрицание:
# -*- coding: utf-8 -*-
import re
c_true = u"ф"
if re.match(r'^[а-я]$',c_true, re.UNICODE|re.IGNORECASE):
print 'yes'
else:
print 'no'
Офлайн
qmanПри работе с латиницей, код работает верно
извините за тупость , но почему следующий код возвращает отрицание:Если указать переменную c_true = “ф” не как юникод то будет по прежнему отрицание.!# -*- coding: utf-8 -*-
import re
c_true = u"ф"
if re.match(r'^[а-я]$',c_true, re.UNICODE|re.IGNORECASE):
print 'yes'
else:
print 'no'
# -*- coding: utf-8 -*-
import re
c_true = u"s"
if re.match(r'^[a-z]+$',c_true, re.UNICODE|re.IGNORECASE):
print 'yes'
else:
print 'no'
Офлайн
Для кириллицы необходимо указывать в юникод
# -*- coding: utf-8 -*-
import re
c_true = u"йдФ"
if re.match(u'^[а-я]+$',c_true, re.UNICODE|re.IGNORECASE):
print 'yes'
else:
print 'no'
import re
c_true = u"Иван Петрович Сидоров"
if re.match(u'^[А-Я][а-я]+[\s]+[А-Я][а-я]+[\s]+[А-Я][а-я]+[\s]*$',c_true, re.UNICODE):
print 'yes'
else:
print 'no'
Отредактировано (Май 4, 2010 19:57:33)
Офлайн
для русского алфавита нужно добавлять А-Я… и про букву ё забывать не следует.
Офлайн