Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 7, 2012 20:16:44

PaRaDokS
Зарегистрирован: 2012-09-07
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг текста

Доброго времени суток, есть такая задача)

Имеется переменная с текстом, мне нужно из текста получить все строки схожие на эту - “/images/content/57_17_6_19524_256”, в примере меняются только цифры)

Как это сделать?

Офлайн

#2 Сен. 7, 2012 20:42:38

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Парсинг текста

С помощью регулярных выражений.

'/images/content/[0-9_]*'

Есть еще grep, но, боюсь, у вас Windows.



Офлайн

#3 Сен. 7, 2012 21:04:02

EBFE
Зарегистрирован: 2012-07-03
Сообщения: 99
Репутация: +  20  -
Профиль   Отправить e-mail  

Парсинг текста

fata1ex
Есть еще grep, но, боюсь, у вас Windows.
C:\Users\EBFE>findstr /R "<=[0-9]*" spc.hst
X in {0,3,6},Y in {0,2,4},minimize(X+Y#<=7,R).
X in {0,3,6},Y in {0,2,4},minimize(X#+Y#<=7,R).

C:\Users\EBFE>findstr /N /R "<=[0-9]*" spc.hst
16:X in {0,3,6},Y in {0,2,4},minimize(X+Y#<=7,R).
17:X in {0,3,6},Y in {0,2,4},minimize(X#+Y#<=7,R).
В принципе, для большенства задач вполне хватает.

Можно кстати и “нормальный” grep поставить
C:\Users\EBFE>grep --version
GNU grep 2.5.4

Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Отредактировано EBFE (Сен. 7, 2012 21:06:32)

Офлайн

#4 Сен. 7, 2012 22:16:52

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Парсинг текста

Можно, но не кроссплатформенно (в смысое на винде его искаропки нет) и лишняя зависимость.

Отредактировано odnochlen (Сен. 7, 2012 22:17:21)

Офлайн

#5 Окт. 1, 2012 07:42:53

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Парсинг текста

Можно еще с помощью xpath модуля lxml, что-то вроде: ‘//img[contains(@src,“/images/content”)’. Нужно полностью хтмл-код видеть, чтобы точно написать xpath-выражение.



Офлайн

#6 Ноя. 18, 2012 01:29:27

WorldCount
Зарегистрирован: 2012-11-14
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг текста

PaRaDokS
Доброго времени суток, есть такая задача)

Имеется переменная с текстом, мне нужно из текста получить все строки схожие на эту - “/images/content/57_17_6_19524_256”, в примере меняются только цифры)

Как это сделать?
import re
string = "sdfksdjfklsdkl /images/content/57_17_6_19524_256 sdfsdlfkl;sd/images/content/16_17_8_12535_277sdflsdklfksdl;fkl;sdkfl;"
pattern = ur"(/\S{6}/\S{7}/\d{2}_\d{2}_\d{1}_\d{5}_\d{3})"
result = re.findall(pattern, string)
print result
Выведет:
['/images/content/57_17_6_19524_256', '/images/content/16_17_8_12535_277']

Пи.Ся > Регулярка не ахти какая, но думаю знающие люди поправят



- ReDesinG -

Отредактировано WorldCount (Ноя. 18, 2012 01:30:17)

Офлайн

#7 Ноя. 19, 2012 04:11:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9897
Репутация: +  855  -
Профиль   Отправить e-mail  

Парсинг текста

WorldCount
pattern = ur"(/\S{6}/\S{7}/\d{2}_\d{2}_\d{1}_\d{5}_\d{3})"
pattern = ur"/images/content/\d{2}_\d{2}_\d_\d{5}_\d{3}"



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version