Main Content

matlab.lang.makeValidName

Construct validMATLAB输入字符串的标识符

Description

例子

n= matlab.lang.makeValidName(sconstructs valid MATLAB®身份标识,n,从输入字符串,s。ThemakeValidName功能不能保证字符串nare unique.

A valid MATLAB identifier is a character vector of alphanumerics (A–Z, a–z, 0–9) and underscores, such that the first character is a letter and the length of the character vector is less than or equal toNamelengthmax

makeValidName在更换任何非字母数字或下划线的字符之前,请删除任何空格字符。如果空格角色之后是小写字母,makeValidNameconverts the letter to the corresponding uppercase character.

例子

n= matlab.lang.makeValidName(s,,,,名称,价值包括一个或多个指定的其他选项名称,价值pair arguments.

例子

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

Examples

全部收缩

s = {'物品_#',,,,'价格单位',,,,'1st order',,,,'Contact'}; N = matlab.lang.makeValidName(S)
n =1x4单元{'Item__'} {'Price_Unit'} {'x1stOrder'} {'Contact'}

在第一个和第二个元素中,makeValidNamereplaced the invalid characters (and/),有下划线。在第三个元素中,makeValidName附加前缀是因为字符向量不是从字母开始的,而是删除了空白空间,并在已删除的空间后资本利用了字符。

用相应的十六进制表示代替无效的字符。

s = {'物品_#',,,,'价格单位',,,,'1st order',,,,'Contact'}; N = matlab.lang.makeValidName(S,“替换风格”,,,,'hex'
n =1x4单元{'item_0x23'} {'price0x2funit'} {'x1storder'} {'contect'}

在第一个和第二个元素中,makeValidNamereplaced the invalid characters (and/),具有十六进制的代表。在第三个元素中,makeValidName附加前缀是因为字符向量不是从字母开始的,而是删除了空白空间,并在已删除的空间后资本利用了字符。

Delete invalid characters.

n = matlab.lang.makevalidname(s,“替换风格”,,,,'删除'
n =1x4单元{'Item_'} {'PriceUnit'} {'x1stOrder'} {'Contact'}

makeValidName删除无效字符(and/)。在第三个元素中,makeValidName附加前缀是因为字符向量不是从字母开始的,而是删除了空白空间,并在已删除的空间后资本利用了字符。

s = {“ 1stmeasurement',,,,'2ndmeasurement',,,,'Control'}; N = matlab.lang.makeValidName(S,'字首',,,,'m_'
n =1x3单元{'m_1stmeasurement'} {'m_2ndmeasurement'} {'control'}

只有不以字母开头的元素使用前缀填充。

s = {'一个名字',,,,'name_1',,,,'2_name'}; [N, modified] = matlab.lang.makeValidName(S)
n =1x3单元{'a_name'} {'name_1'} {'x2_name'}
modified =1x3 logical array1 0 1

makeValidName没有修改第二元素。

输入参数

全部收缩

输入字符串,指定为一个特征向量,cell array of character vectors, or string array.

名称值参数

specify optional pairs of arguments asname1 = value1,...,namen = valuen, 在哪里姓名是参数名称和Valueis the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

在R2021a之前,请使用逗号分隔每个名称和值,并附上姓名用引号。

Example:“替换风格”,,,,'删除'删除无效的字符。

替换样式,指定为“下划线”,,,,'删除', 或者'hex'。The value controls how MATLAB replaces nonalphanumeric characters. For all values of替换风格,,,,MATLABdeletes whitespace characters and changes a lowercase letter following a whitespace to uppercase.

替换风格Value Description
“下划线”(默认) 取代所有不是字母数字或下划线的字符。“下划线”
'hex' 用相应的十六进制表示代替不是字母数字或下划线的每个字符。'hex'
'删除' Deletes all characters that are not alphanumerics or underscores.'删除'

字符前缀至inputs that do not begin with a letter aftermakeValidName替换非掌数字符,指定为字符向量或字符串标量。例如,默认情况下,makeValidName前缀字符到输入'*你好'因为,在替换非字符字符之后,输入不会以字母开头('_hello')。但是,如果您指定删除非alphanumeric字符的替换样式,makeValidNamedoes not prefix characters. After it replaces nonalphanumeric characters, the input begins with a letter ('你好')。

A valid prefix must meet the following conditions.

  • start with a letter.

  • Contain only alphanumeric characters and underscores.

  • not be a MATLAB keyword.

  • 不超过价值Namelengthmax

输出参数

全部收缩

Valid MATLAB identifiers, returned as a character vector, cell array of character vectors, or string array. The output has the same number of dimensions as the input,s

Indicator of modified elements, returned as a logical scalar or array and having the same number of dimensions as the input,s。一个值1((true)表示makeValidName修改了相应位置中的输入。一个值0((错误的)表示makeValidName不需要修改相应位置中的输入。

Tips

  • To ensure that input values are valid and unique, usematlab.lang.makeniquestringsmatlab.lang.makeValidName

    s = {'我的名字',,,,'我的名字',,,,'我的名字'}; validValues = matlab.lang.makeValidName(S) validUniqueValues = matlab.lang.makeUniqueStrings(validValues,{},...Namelengthmax)
    validValues ='my_name''my_name''my_name'valiNuniqueValues ='my_name''my_name_1''my_name_2'

  • 要自定义无效的角色替换,首先使用诸如strreporREGEXPREP至convert to valid characters. For example, convert'@'characters ins'在'使用strrep((s,,,,'@',,,,'在')。Then, usematlab.lang.makeValidName至ensure that all characters ins有效。

版本历史记录

Introduced in R2014a