Я пытаюсь извлечь строки из длинной строки, которая является строкой CSV-файла с Python или R. Длинная строка
"Zhao, Sihai@Univ Penn::Cai, T. Tony@Univ Penn::Li, Hongzhe@Univ Penn"
И результаты должны быть
"Zhao, Sihai" "Cai, T. Tony" "Li, Hongzhe"
В R вы можете сделать
a <- "Zhao, Sihai@Univ Penn::Cai, T. Tony@Univ Penn::Li, Hongzhe@Univ Penn" sub('(^.+)@.*$', '\\1', unlist(strsplit(a, '::'))) #[1] "Zhao, Sihai" "Cai, T. Tony" "Li, Hongzhe"
Python:
tmp_str = "Zhao, Sihai@Univ Penn::Cai, T. Tony@Univ Penn::Li, Hongzhe@Univ Penn" names = [s.split("@")[0] for s in tmp_str.split("::")] print(names)
И вывод ['Zhao, Sihai', 'Cai, T. Tony', 'Li, Hongzhe']
['Zhao, Sihai', 'Cai, T. Tony', 'Li, Hongzhe']
Ввод
s = "Zhao, Sihai@Univ Penn::Cai, T. Tony@Univ Penn::Li, Hongzhe@Univ Penn" l=s.replace('@Univ Penn','').split("::") s=str(l) s2=s[1:-1] print(s2)
выход
'Zhao, Sihai', 'Cai, T. Tony', 'Li, Hongzhe'
Вам этого достаточно? Введите:
str = "Zhao, Sihai@Univ Penn::Cai, T. Tony@Univ Penn::Li, Hongzhe@Univ Penn" parsed = x.replace('@Univ Penn','').split("::") print(parsed)
Выход: