How to split string on the last delimiter?
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Haotian Shen
am 26 Nov. 2016
Kommentiert: Haotian Shen
am 27 Nov. 2016
I am supposed to separate a string 'abcdef@eng.abc.edu' into three separate string 'abcdef', 'eng.abc', 'edu' using strsplit function. However, I don't know how to split the string at the last . delimiter instead of separate them into four strings using C = strsplit('abcdef@eng.abc.edu',{'@','.'}). Please help, thanks!
1 Kommentar
dpb
am 26 Nov. 2016
Well, you've got to have some other rule that tells you to not consider one delimiter a delimiter at all...what is that rule? You'd have to start by separating out the domain from the address then parse off the last TLD (top-level domain) by searching for the last dot.
Akzeptierte Antwort
Walter Roberson
am 26 Nov. 2016
lastdot_pos = find(YourString == '.', 1, 'last');
3 Kommentare
Walter Roberson
am 27 Nov. 2016
YourString = 'abcdef@eng.abc.edu';
lastdot_pos = find(YourString == '.', 1, 'last');
part12 = YourString(1 : lastdot_pos - 1);
part12cell = strsplit(part12, '@');
part1 = part12cell{1};
part2 = part12cell{2};
part3 = YourString(lastdot_pos+1 : end );
Alternative:
YourString = 'abcdef@eng.abc.edu';
part123cell = regexp(YourString, '@|\.(?=\w+$)', 'split');
part1 = part123cell{1};
part2 = part123cell{2};
part3 = part123cell{3};
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!