如何在MATLAB中从字符串创建首字母缩略词?

时间:2010-06-14 16:06:06

标签: regex string matlab acronym

有没有一种简单的方法可以在MATLAB中从字符串创建首字母缩略词?例如:

'Superior Temporal Gyrus' => 'STG'

2 个答案:

答案 0 :(得分:8)

如果您想将每个大写字母放入缩写...

...您可以使用函数REGEXP

str = 'Superior Temporal Gyrus';  %# Sample string
abbr = str(regexp(str,'[A-Z]'));  %# Get all capital letters

...或者您可以使用UPPERISSPACE函数:

abbr = str((str == upper(str)) & ~isspace(str));  %# Compare str to its uppercase
                                                  %#   version and keep elements
                                                  %#   that match, ignoring
                                                  %#   whitespace

...或者您可以使用ASCII/UNICODE values代替大写字母:

abbr = str((str <= 90) & (str >= 65));  %# Get capital letters A (65) to Z (90)


如果你想把每个开始单词的字母都放入缩写......

...您可以使用函数REGEXP

abbr = str(regexp(str,'\w+'));  %# Get the starting letter of each word

...或者您可以使用STRTRIMFINDISSPACE函数:

str = strtrim(str);  %# Trim leading and trailing whitespace first
abbr = str([1 find(isspace(str))+1]);  %# Get the first element of str and every
                                       %#   element following whitespace

...或者您可以使用logical indexing修改上述内容,以避免拨打FIND

str = strtrim(str);  %# Still have to trim whitespace
abbr = str([true isspace(str)]);


如果您想将每个启动单词的大写字母放入缩写...

...您可以使用函数REGEXP

abbr = str(regexp(str,'\<[A-Z]\w*'));

答案 1 :(得分:0)

谢谢,还有这个:

s1(regexp(s1, '[A-Z]', 'start'))

将返回字符串中由大写字母组成的缩写。请注意,字符串必须在句子