Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [Python] Regexp и русские буквы  (Прочитано 8001 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
[Python] Regexp и русские буквы
« : 04 Декабря 2010, 11:50:01 »
Решил вот добавить в conky расписание. Узнал о существовании регулярных выражений. Написал вот такой скриптик для проверки
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

s=re.search(u'[А-Я а-яіІ]+','<a class="linktt" href="#1021372">Фіз Лб</a> 428')
print s.group(0)

Не выводит ничего, хотя с английскими работает нормально.
ЧЯДНТ?

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: [Python] Regexp и русские буквы
« Ответ #1 : 04 Декабря 2010, 15:31:15 »
Тебе обязательно отлавливать кириллицу в строке?
Можно ж как-то так сделать:
death tmp # cat pyth1.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

s=re.search(r'>(.*)<','<a class="linktt" href="#1021372">Фіз Лб</a> 428')
print s.group(1)
death tmp # ./pyth1.py
Фіз Лб
Ubuntu, Gentoo, RHEL, AIX

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: [Python] Regexp и русские буквы
« Ответ #2 : 06 Декабря 2010, 12:52:47 »
С русскими буквами может быть геморойно.
А-Я
а-я
Вы уверены, что они идут подряд ?
PS.
Заинтересовали меня этим вопросом (даже нарисовал код для исследования).

#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "Большие"
c=u"АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
for str in c:
   print ord(str)
print "Мелкие"
c=u"абвгдеёжзиклмнопрстуфхцчшщъыьэюя"
for str in c:
   print ord(str)
« Последнее редактирование: 06 Декабря 2010, 13:59:08 от alexander.pronin »

Оффлайн smaharbA

  • Участник
  • *
  • Сообщений: 220
    • Просмотр профиля
Re: [Python] Regexp и русские буквы
« Ответ #3 : 06 Декабря 2010, 14:09:54 »
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re

txt=u'<a class="linktt" href="#1021372">Фiз Лб</a> 428';
s=re.search(u'([а-я]\w+\s*)+',txt,re.U | re.I | re.M)
if s != None:
    print txt[s.start():s.end()]
Я конечно далек от мысли...(с)

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: [Python] Regexp и русские буквы
« Ответ #4 : 06 Декабря 2010, 14:15:44 »
Действительно, русские буквы идут подряд, кроме Ё и ё.

Оффлайн smaharbA

  • Участник
  • *
  • Сообщений: 220
    • Просмотр профиля
Re: [Python] Regexp и русские буквы
« Ответ #5 : 06 Декабря 2010, 18:10:55 »
по делу, автору надо осваивать не регулярки, а иксмлпарсеры и xml.dom
Я конечно далек от мысли...(с)

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.