ОБНОВЛЕННЫЙ ВОПРОС
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)
Я получил вывод ошибки ниже при выполнении приведенного выше кода
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)
Пожалуйста, проверьте изображение ниже, я выделил желтым цветом ту часть, которая не разделена.
Я не использую регулярное выражение, пожалуйста, проверьте приведенный выше код






Вы можете использовать метод замены
это регулярное выражение будет соответствовать желаемым вещам
([A-Z]+?(?=:))
И заменить на !\1
([A-Z]+?(?=:)) - Сопоставьте от A до Z один или несколько раз, после чего следует :Каждый раз последовательность тегов перепутана.
@Akshay это универсальный. я вижу закономерность, что все теги состоят из заглавных букв, за которыми следует :. это регулярное выражение соответствует этому шаблону. это будет работать, даже если теги перепутаны. если шаблон, который я вижу, остается прежним для заглавных букв тега, за которыми следует :
@ Code maniac Я знаю, что это работает хорошо, но я хочу решить проблему выше, используя код, который я создал. Есть ли решение от вас?
Если ваши теги исчерпывающие, вот что вы можете сделать:
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'
Вместо разделения просто сопоставьте, используя
[APQ]?BCD:(?:(?![APQ]?BCD:)[\s\S])*