Split string in two strings
2 次查看(过去 30 天)
显示 更早的评论
I have the following string, now I want to splits it up in 2 different strings like show in below:
STR = ["van Donk","Gerritsen","kooijman","Verliefde","Floré","Pengel","aan de Wiel","van der Hoeven","Hop","Boer","van Ewijk"]
What i want to create is
STR1 = ["van","","","","","","aan de","van der","","","van"]
STR2 = ["Donk","Gerritsen","kooijman","Verliefde","Floré","Pengel","Wiel","Hoeven","Hop","Boer","Ewijk"]
Anyone who can help me?
2 个评论
Walter Roberson
2022-8-10
Ummm... why? "van der Hoeven" is a complete surname. The surname is not "Hoeven" with "van der" being some kind of middle name. "van der Hoeven" should be sorted under v or V, not under H
Stephen23
2022-8-10
"The surname is not "Hoeven" with "van der" being some kind of middle name."
The "van der" is not part of the main name, it is a tussenvoegsel:
which in Dutch is ignored when sorting, just like "von" and "zu" are ignored in German.
""van der Hoeven" should be sorted under v or V, not under H"
There are differing opinions on this:
So the required sort order depends mostly on where your users are from.
回答(1 个)
Stephen23
2022-8-10
编辑:Stephen23
2022-8-10
str = ["van Donk","Gerritsen","kooijman","Verliefde","Floré","Pengel","aan de Wiel","van der Hoeven","Hop","Boer","van Ewijk"]
tkn = regexp(str,'^(\w+\s+)*(\w+)$','tokens','once');
tkn = vertcat(tkn{:});
st1 = strtrim(tkn(:,1))
st2 = tkn(:,2)
3 个评论
Walter Roberson
2022-8-10
(.*)\s+(\S+)
What do you want to do if there are spaces after the last word?
Stephen23
2022-8-10
str = ["van Donk","Gerritsen","kooijman","Verliefde","Floré","Pengel","aan de Wiel","van der Hoeven","Hop","Boer","van Ewijk","in 't veld"];
tkn = regexp(str,'^(.*?)\s*(\S+)$','tokens','once');
tkn = vertcat(tkn{:})
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!