MATLAB中characterListPattern函数用法

时间:2025-01-21 15:04:24

目录

语法

说明

示例

在文本中查找元音字母

提取在某字母范围内的字母

查找以元音字母开头的单词

将人名按字母顺序分组


        characterListPattern函数的功能是匹配列表中的字符。

语法

pat = characterListPattern(characters)
pat = characterListPattern(startCharacter,endCharacter)

说明

        pat = characterListPattern(characters) 创建与 characters 中包含的任何字符匹配的模式。

        pat = characterListPattern(startCharacter,endCharacter) 匹配范围在 startCharacter 和 endCharacter 之间的任何字符,包括 startCharacter 和 endCharacter。

示例

在文本中查找元音字母

        定义一个模式表达式 pat,它使用 characterListPattern 只匹配小写元音字母 a、e、i、o 和 u。从字符串中提取该模式。

txt = "She sells sea shells by the sea shore.";
pat = characterListPattern("aeiou");
vowels = extract(txt,pat)
vowels = 10x1 string
    "e"
    "e"
    "e"
    "a"
    "e"
    "e"
    "e"
    "a"
    "o"
    "e"

提取在某字母范围内的字母

        使用 characterListPattern 提取在指定字母范围内的字母。

        定义一个模式表达式 pat,它使用 characterListPattern 仅匹配从 a 到 g 的小写字母。从字符串中提取该模式。

txt = "ABCDEFGHIJKLMONPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
pat = characterListPattern("a","g");
letters1 = extract(txt,pat)
letters1 = 7x1 string
    "a"
    "b"
    "c"
    "d"
    "e"
    "f"
    "g"

查找以元音字母开头的单词

        将 pat 创建为一个 pattern 对象,该对象使用 letterBoundary、characterListPattern 和 lettersPattern 匹配以元音字母开头的单词。提取该模式。

txt = "Do you like words like armadillo, echidna, iguana, ostrich, & unicorn?";
pat = letterBoundary + characterListPattern("aeiou") + lettersPattern;
words = extract(txt,pat)
words = 5x1 string
    "armadillo"
    "echidna"
    "iguana"
    "ostrich"
    "unicorn"

将人名按字母顺序分组

        创建字符串 names 变量。使用 characterListPattern 创建一个匹配字符 A 到 G 的模式。使用 startsWith 查找以 A 到 G 开头的人名。对 H 到 P 和 Q 到 Z 重复此过程。

names = ["Andres" "Betty" "Chris" "David" "Etsuko" "Fredrick"...
        "Gaston" "Hasina" "Ian" "Jose" "Karen" "Larry" "Malia"...
        "Nick" "Omar" "Patrick" "Quincy" "Rajesh" "Shruti"...
        "Tau" "Uma" "Veronica" "Wendy" "Xiao"...
        "Yakov" "Zhanna"];
    
NameGroup1 = names(startsWith(names,characterListPattern('A','G')))    
NameGroup1 = 1x7 string
    "Andres"    "Betty"    "Chris"    "David"    "Etsuko"    "Fredrick"    "Gaston"

NameGroup2 = names(startsWith(names,characterListPattern('H','P')))    
NameGroup2 = 1x9 string
    "Hasina"    "Ian"    "Jose"    "Karen"    "Larry"    "Malia"    "Nick"    "Omar"    "Patrick"

NameGroup3 = names(startsWith(names,characterListPattern('Q','Z')))
NameGroup3 = 1x10 string
    "Quincy"    "Rajesh"    "Shruti"    "Tau"    "Uma"    "Veronica"    "Wendy"    "Xiao"    "Yakov"    "Zhanna"

参数说明

characters — 要匹配的字符的列表

        要匹配的字符的列表,指定为字符向量或字符串标量。

startCharacter — 开头字符

        要匹配的字母范围的开头字符,指定为包含单个字符的字符标量或字符串标量。

endCharacter — 结尾字符

        要匹配的字母范围的结尾字符,指定为包含单个字符的字符标量或字符串标量。

pat — 模式表达式

        模式表达式,以 pattern 对象形式返回。

文本的字符顺序

        ​MATLAB® 使用 UTF-16 字符编码方案将字符存储为 Unicode®。字符和字符串数组按 UTF-16 代码点顺序进行排序。对于同时也是 ASCII 字符的字符,此顺序意味着大写字母在小写字母之前。数字和某些标点符号也在字母之前。