python разделить длинную строку вывода по шаблону (без разделителя) - PullRequest
1 голос
/ 17 июня 2020

Я новичок в python, и я попытался прочитать карту PDF, используя (PyPDF2). Я получаю это как результат Пример вывода карты pdf в виде текста . Я хочу извлечь данные из этого вывода, в котором соответствует определенный шаблон [RIY-DIRAHH-015524.49121946.651068]. Мне нужны только те значения, которые имеют только этот шаблон. Длина рисунка варьируется [30-34]. Исправлено для [RIY-DIRAHH-0155], тогда как изменение происходит только в LAT / LONG [24.49121946.651068]. Полный вывод PDF MAP .

Пожалуйста, помогите извлечь / разделить указанные c значения (соответствует шаблону). Если есть другое решение для чтения PDF MAP. Добрый совет. Заранее благодарим.

import re
x='result of PDF map'[image1]
result = re.search('\w{3}-\w{6}-\d*.\d*.\d*',x)
#output
['', '', '', '', '']

Пример изображения карты .

1 Ответ

1 голос
/ 17 июня 2020

Вот регулярное выражение, которое подойдет вам:

re.findall(r"RIY-[A-Z]{6}-\d{6}\.\d{8}\.\d{5,7}", text)

Результат:

 'RIY-OUHOMH-100224.53476846.650127',
 'RIY-OUHOMH-100324.53282546.65039',
 'RIY-OUHOMH-100424.53224446.651758',
 'RIY-OUHOHH-100724.52902946.653571',
 'RIY-OUHOHH-100624.53007146.651934',
 'RIY-OUHOHH-100524.53178646.65279',
 'RIY-OUHOMH-100124.53597246.649456',
 'RIY-DIRAHH-015124.49540746.641877',
 'RIY-DIRAHH-015224.49410546.644253',
 'RIY-DIRAHH-015324.49267846.646789',
 'RIY-DIRAHH-015424.49144946.649107',
 'RIY-DIRAHH-015524.49121946.651068',
 'RIY-DIRAHH-015624.49343446.652505',
 'RIY-DIRAHH-015724.49563146.653924',
 ...

edit

Чтобы разделить это на несколько столбцов, весь код будет:

out = re.findall(r"RIY-[A-Z]{6}-\d{6}\.\d{6,8}\.\d{5,7}", text) 
df = pd.DataFrame(out, columns = ["RIY"]) 

df["col1"] = df.RIY.str[0:15]
df["col2"] = df.RIY.str[15:24]
df["col3"] = df.RIY.str[24:]

df тогда будет выглядеть так:

                                 RIY             col1       col2       col3
0  RIY-OUHOMH-100224.53476846.650127  RIY-OUHOMH-1002  24.534768  46.650127
1   RIY-OUHOMH-100324.53282546.65039  RIY-OUHOMH-1003  24.532825   46.65039
2  RIY-OUHOMH-100424.53224446.651758  RIY-OUHOMH-1004  24.532244  46.651758
3  RIY-OUHOHH-100724.52902946.653571  RIY-OUHOHH-1007  24.529029  46.653571
4  RIY-OUHOHH-100624.53007146.651934  RIY-OUHOHH-1006  24.530071  46.651934
...