Найти - Пользователи
Полная версия: Помогите с регуляркой
Начало » Центр помощи » Помогите с регуляркой
1
Frank
Есть файл с таким содержимым:

sssss  1
1
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
sss sss
sssss ssssss
ssssssss s s s sss
1
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
sss sss
sssss ssssss
ssssssss s s s ssssss
1
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
dd.dddddd dd.dddddd
sss sss
sssss ssssss
ssssssss s s s ssss
Мне нужно выцепить все блоки c dd.dddddd dd.dddddd
d - это цифра.
Пока мне удалось вытащить только лишь все dd.dddddd вперемешку, а нужно именно блоками.
Не силён я в регулярках, помогите кто знает:)
Studentik
from PyQt4 import Qt as qt
import sys, re

app = qt.QApplication(sys.argv)
mw = qt.QMainWindow()
fr = qt.QFrame()
lt = qt.QVBoxLayout()
te = qt.QTextEdit()
te2 = qt.QTextEdit()
btn = qt.QPushButton("find")

mw.setCentralWidget(fr)
fr.setLayout(lt)
lt.addWidget(te)
lt.addWidget(te2)
lt.addWidget(btn)

te.setPlainText("""
11.111111 22.222222
aaa
33.333333 44.444444
33.333333 44.444444
bbb
""")

def findre():
text = te.toPlainText()
pattern = r"\d{2}\.\d{6}\s\d{2}\.\d{6}"
text2 = "\n".join(re.findall(pattern, text))
te2.setPlainText(text2)

btn.clicked.connect(findre)

mw.show()
app.exec_()
Frank
круто! спасибо, Studentik, пойду пробовать.
Frank
прдробнее изучил код, паттерн у меня был такой \d+\.\d+\s\d+\.\d
твой паттерн выдергивает значения парами, а мне нужно прямо группой. Тоесть каждая группа значений это характеристика объекта, соответственно мне нужно их дернуть не просто парами, а именно группой, а по парам я их потом смогу в цикле разобрать.

Наверное паттерн нужно как-то сгруппировать?
PooH
Просто обрабатывайте файл построчно. Попала строка под вашу регулярку - начало группы. И пока строки соответствуют регулярке - добавляйте в группу. Как не совпала - сброс и дальше следующую группу начинаете.
Frank
2 PooH
после долгих экспериментов я тоже пришел к такому решению:)) какой смысл мучить регекспы, когда всё можно сделать просто сравнением и построчной обработкой. Особенно если учесть, что регулярки это не моя сильная сторона)
PooH
Frank
после долгих экспериментов я тоже пришел к такому решению:)) какой смысл мучить регекспы, когда всё можно сделать просто сравнением и построчной обработкой. Особенно если учесть, что регулярки это не моя сильная сторона)
“Была у программиста проблема, решил он ее при помощи регулярных выражений, теперь у него две проблемы” :)
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