Как разделить input_data с помощью Python? - PullRequest
0 голосов
/ 19 февраля 2019

ОБНОВЛЕННЫЙ ВОПРОС

input_data = 'ABCD:Data ScientistPBCD:Python Developer QBCD:Artificial IntelligenceBCD:Machine Learning Developer'

tag_list = ["ABCD", "BCD", "PBCD", "QBCD"]

Разделение вышеуказанных входных данных с помощью tag_list

for each_tag in tag_list:
    input_data = input_data.replace(each_tag, "|" + each_tag)

print(input_data)

При выполнении вышеуказанного кода я получил следующее сообщение об ошибке1009 *

Error Output:-
|A|BCD:Data Scientist|P|BCD:Python Developer |Q|BCD:Artificial Intelligence|BCD:Machine Learning Developer

Я ожидаю вывод ниже: -

Expected Output :-
|ABCD:Data Scientist|PBCD:Python Developer |QBCD:Artificial Intelligence|BCD:Machine Learning Developer

Как решить вышеуказанную ошибку?

Пожалуйста, проверьте следующий код: - Я проверил всекод я получил ошибку при появлении новых данных на картинке

import re

input_data = 'ABCD:AKSHAYTAB:INDIAN ARMYWXYZ:1234-M234656VXYZ:45666Gb4565UXYZ:45535353TIME:17:20OBTRL:346644MNP2:PUNE UNIVERCITYMNP3:SATARA PUNEMNP6:46564PQR2:AMAR GODASEEPQR3:PUNE 3545 LIIS1:467574IIS2:BANK OF INDIAABK1:56365ABK2:KOREGAON SATARAMTL: BEM:56546445745/PPI:MMC:AJINKYA DALAVI.FFC XYZ: SUMIT GODASE SATARAPPI:CNF:ANTARES HOLDINGS LP/AC-50293315'

tag_list = ["ABCD", "TAB", "WXYZ", "VXYZ", "UXYZ", "TIME", "OBTRL", "MNP2", "MNP3", "MNP6", "PQR2", "PQR3", "OGB3", "IIS1", "IIS2", "ABK1", "ABK2", "MTL", "BEM", "PPI", "MMC", "XYZ", "PPI", "CNF"]

for each_tag in tag_list:
 print(each_tag)
 input_data = re.sub(r"(?<![A-Z])"+each_tag, "|" + each_tag, input_data)

print(input_data)

Пожалуйста, проверьте изображение ниже, я выделил желтым цветом ту часть, которая не разделена

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Если ваши теги исчерпывающие, вот что вы можете сделать:

import re

input_data = 'ABCD:Data ScientistPBCD:Python Developer QBCD:Artificial IntelligenceBCD:Machine Learning Developer'

tag_list = ["ABCD", "BCD", "PBCD", "QBCD"]
pattern = r'([A|P|Q]{0,1}BCD)'
subbed_data = re.sub(pattern, r'|\1', input_data)

>>>subbed_data
'|ABCD:Data Scientist|PBCD:Python Developer |QBCD:Artificial Intelligence|BCD:Machine Learning Developer'
0 голосов
/ 19 февраля 2019

Вы можете использовать метод замены

это регулярное выражение будет соответствовать желаемым вещам

([A-Z]+?(?=:))

и заменить на !\1

  • ([A-Z]+?(?=:)) - совпадениеA или Z один или несколько раз, за ​​которыми следует :

Демо

...