Как извлечь строку из длинной строки - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь извлечь строки из длинной строки, которая является строкой CSV-файла с Python или R. Длинная строка

"Zhao, Sihai@Univ Penn::Cai, T. Tony@Univ Penn::Li, Hongzhe@Univ Penn"

И результаты должны быть

"Zhao, Sihai" "Cai, T. Tony" "Li, Hongzhe"

Ответы [ 4 ]

1 голос
/ 27 мая 2019

В 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" 
1 голос
/ 27 мая 2019

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']

0 голосов
/ 27 мая 2019

Ввод

 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'
0 голосов
/ 27 мая 2019

Вам этого достаточно?
Введите:

str = "Zhao, Sihai@Univ Penn::Cai, T. Tony@Univ Penn::Li, Hongzhe@Univ Penn"
parsed = x.replace('@Univ Penn','').split("::")
print(parsed)

Выход:

['Zhao, Sihai', 'Cai, T. Tony', 'Li, Hongzhe']
...