主要内容

matlab.lang.makeValidName

构建有效的MATLAB输入字符串中的标识符

描述

例子

N= matlab.lang.makeValidName (年代构造有效的MATLAB®标识符,N,从输入字符串,年代.的makeValidName函数中不保证字符串N是独一无二的。

有效的MATLAB标识符是由字母数字(A - z, A - z, 0-9)和下划线组成的字符向量,使得第一个字符是字母,并且字符向量的长度小于或等于namelengthmax

makeValidName在替换非字母、数字或下划线的字符之前删除任何空白字符。如果空格字符后面跟一个小写字母,makeValidName将字母转换为相应的大写字符。

例子

N= matlab.lang.makeValidName (年代,名称,值包括一个或多个指定的其他选项名称,值对参数。

例子

N,修改] = matlab.lang.makeValidName(___返回一个逻辑数组,修改,表示修改的元素。您可以将此语法与前面语法的任何输入参数一起使用。

例子

全部折叠

S = {“Item_ #”,“价格/单位”,“一阶”,“接触”};N = matlab.lang.makeValidName(S)
N =1 x4单元格{' Item__}{‘Price_Unit}{‘x1stOrder}{“接触”}

在第一和第二元素中,makeValidName替换无效字符(而且/),并加下划线。在第三个元素中,makeValidName由于字符向量不是以字母开头,因此添加了前缀,删除了空格,并将删除的空格后面的字符大写。

将无效字符替换为相应的十六进制表示。

S = {“Item_ #”,“价格/单位”,“一阶”,“接触”};N = matlab.lang.makeValidName(S,“ReplacementStyle”,十六进制的
N =1 x4单元格{'Item_0x23'} {'Price0x2FUnit'} {'x1stOrder'}{'联系人'}

在第一和第二元素中,makeValidName替换无效字符(而且/),以十六进制表示。在第三个元素中,makeValidName由于字符向量不是以字母开头,因此添加了前缀,删除了空格,并将删除的空格后面的字符大写。

删除无效字符。

N = matlab.lang.makeValidName(S,“ReplacementStyle”,“删除”
N =1 x4单元格{'Item_'} {'PriceUnit'} {'x1stOrder'} {'Contact'}

makeValidName删除无效字符(而且/).在第三个元素中,makeValidName由于字符向量不是以字母开头,因此添加了前缀,删除了空格,并将删除的空格后面的字符大写。

S = {“1 stmeasurement”,“2 ndmeasurement”,“控制”};N = matlab.lang.makeValidName(S,“前缀”,“m_”
N =1 x3单元格{'m_1stMeasurement'} {'m_2ndMeasurement'} {'Control'}

只有不以字母开头的元素才会以前缀开头。

S = {“一个%的名字”,“name_1”,“2 _name”};[N, modified] = matlab.lang.makeValidName(S)
N =1 x3单元格{'a_name'} {'name_1'} {'x2_name'}
修改=1x3逻辑阵列10 0 1

makeValidName没有修改第二个元素。

输入参数

全部折叠

输入字符串,指定为字符向量、字符向量的单元格数组或字符串数组。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“ReplacementStyle”、“删除”删除无效字符。

替换样式,指定为“下划线”,“删除”,或十六进制的.该值控制MATLAB如何替换非字母数字字符。对于所有的值ReplacementStyle, MATLAB删除空白字符,并将空格后的小写字母改为大写。

ReplacementStyle价值 描述
“下划线”(默认) 将所有不是字母数字或下划线的字符替换为下划线。“下划线”
十六进制的 将每个不是字母数字或下划线的字符替换为其对应的十六进制表示。十六进制的
“删除” 删除除字母、数字或下划线以外的所有字符。“删除”

输入后不以字母开头的字符作为前缀makeValidName替换指定为字符向量或字符串标量的非字母数字字符。例如,默认情况下,makeValidName为输入添加字符前缀“*你好”因为,在替换非字母数字字符后,输入不是以字母(“_hello”).但是,如果指定删除非字母数字字符的替换样式,makeValidName不添加字符前缀。在替换非字母数字字符后,输入以字母(“你好”).

一个有效的前缀必须满足以下条件。

  • 从一封信开始。

  • 只能包含字母数字字符和下划线。

  • 不是MATLAB关键字。

  • 不大于的值namelengthmax

输出参数

全部折叠

有效的MATLAB标识符,返回为字符向量、字符向量的单元格数组或字符串数组。输出的维数与输入的维数相同,年代

已修改元素的指示符,作为逻辑标量或数组返回,并具有与输入相同的维数,年代.值为1真正的)表示makeValidName在相应位置修改了输入。值为0)表示makeValidName不需要在相应的位置修改输入。

提示

  • 要确保输入值是有效和唯一的,请使用matlab.lang.makeUniqueStringsmatlab.lang.makeValidName

    S = {”我。的名字',“my_Name”,“my_Name”};validValues = matlab.lang.makeValidName(S) validUniqueValues = matlab.lang.makeUniqueStrings(validValues,{},...namelengthmax)
    validValues = 'my_Name' 'my_Name' 'my_Name' 'my_Name' ' validUniqueValues = 'my_Name' 'my_Name_1' 'my_Name_2' '

  • 若要自定义无效的字符替换,请首先使用函数strrepregexprep转换为有效字符。例如,convert“@”字符年代“在”使用strrep(年代,“@”,“在”).然后,用matlab.lang.makeValidName确保所有字符都在年代是有效的。

版本历史

在R2014a中引入