在字符串中搜索标记函数
- 更新时间2025-07-30
- 阅读时长7分钟
从偏移量位置开始扫描输入字符串,寻找标记,并通过标记字符串输出各个字段。

输入/输出
允许空标记?(F)
—
允许空标记?确定函数在遇到多个相邻分隔符时是否能识别标记。 如允许空标记?的值为FALSE(默认值),多个相邻的分隔符可以分隔输入字符串中的两个标记。如允许空标记?的值为TRUE,在每个相邻分隔符对之间都返回空的标记字符串。
输入字符串
—
输入字符串是要搜索标记的字符串。
偏移量
—
偏移量是输入字符串中开始扫描的点。 默认值为0,字符串的起始位置。
运算符(无)
—
运算符是字符串数组,如输入字符串包含字符串数组,即使未通过分隔符分隔,函数仍视为标记。 如输入字符串的一部分匹配多个运算符,函数可视最长的匹配为标记。例如,如>、=和>=定义为运算符,输入字符串4>=0将生成>=作为下一个标记字符串,偏移量为1。 运算符中的字符串可能包含下列特殊格式代码,用于使整个数字作为单个标记进行扫描。
注: 如定义+或-为运算符,则函数无法识别数字前的+或-符号。函数始终使其作为单个标记返回。这是“最长匹配”规则的例外情况。
分隔符(\s,\t,\r,\n)
—
分隔符该字符串数组可作为标记分隔符。 分隔符中的字符串不会作为标记返回,而是用于分隔相邻的标记。默认的分隔符为空格字符:空格、制表符、换行符和回车。
使用缓存中的分隔/运算数据?(F)
—
使用缓存中的分隔/运算数据?是可选的高级输入端。如未连线,标记字符串仍为正常状态。 通过使用缓存中的分隔/运算数据?可以显著改进字符串解析的性能。在标记字符串第一次执行时,应设置使用缓存中的分隔/运算数据?为FALSE,在接下来的执行中,只要运算符和分隔符未改变,可设置为TRUE。使用移位寄存器并使常量FALSE作为输入,TRUE作为输出,可保证运算符和分隔符在循环执行中没有改变的情况下正确运行。如使用缓存中的分隔/运算数据?的值为TRUE,并且运算符或分隔符在上次执行时发生改变,可产生错误的结果。如运算符和分隔符没有连线或连线至程序框图常量,则无需连线使用缓存中的分隔/运算数据?即可得到优化的性能。
字符串输出
—
字符串输出返回无改变的输入字符串。
标记后偏移量
—
标记后偏移量确定在输入字符串中的点,此类点紧随最近找到的标记和任意的分隔符。 任何对于输入字符串的后续搜索都从该偏移量开始。如偏移量小于0或大于输入字符串中的字符数,或已经到达字符串的末尾,则标记后偏移量为-1。
标记字符串
—
标记字符串是匹配的标记。它可以是运算符中的字符串或输入字符串中位于分隔符间的任意文本字符串。
标记索引
—
标记索引如标记字符串匹配运算符中的元素,则值为标记字符串在运算符中的索引。 如果 令牌字符串 是任何其他字符串, 令牌索引 返回-1。如果函数到达 输入字符串 的末尾而没有找到任何有效的运算符,则 令牌索引 返回-2。 |
通常情况下,标记作为文本分隔符代表解析配置文件,或其他基于文本的数据格式时找到的独立的关键词、数值或运算符。通过分隔符和运算符输入可指定输入函数的带标记数据。例如,空格在默认情况下为分隔符,This is a string中的每个单词都是标记,因此可使这句话解析为单词元素。
在While循环中使用该函数,一次处理一段字符,直至标记索引返回-2(表示字符串结束)。可通过移位寄存器,使标记后偏移量传递至偏移量,每次扫描从上次扫描的结束位置开始。
默认情况下,函数找到空格、制表位、回车符或换行符时可返回标记。可使用此类或其他分隔符,或定义运算符,对字符串进行解析。
例如,假设连线下列值至函数。
| 输入 | 值 |
|---|---|
| 输入字符串 | This is a testLabVIEWstring |
| 偏移量 | 0(默认) |
| 运算符 | [NI,asdf,LabVIEW] |
| 分隔符 | \s,\t,\r,\n(默认) |
如函数在While循环中,函数可返回下列值。
第一次循环
| 字符串输出 | This is a testLabVIEWstring |
| 标记后偏移量 | 5 |
| token字符串 | This |
| 标记索引 | –1(非运算符) |
第二次循环
| 字符串输出 | This is a testLabVIEWstring |
| 标记后偏移量 | 8 |
| token字符串 | is |
| 标记索引 | –1(非运算符) |
第三次循环
| 字符串输出 | This is a testLabVIEWstring |
| 标记后偏移量 | 10 |
| token字符串 | a |
| 标记索引 | –1(非运算符) |
第四次循环
| 字符串输出 | This is a testLabVIEWstring |
| 标记后偏移量 | 14 |
| token字符串 | test |
| 标记索引 | –1(非运算符) |
第五次循环
| 字符串输出 | This is a testLabVIEWstring |
| 标记后偏移量 | 21 |
| token字符串 | LabVIEW |
| 标记索引 | 2(运算符中的第二项) |
第六次循环
| 字符串输出 | This is a testLabVIEWstring |
| 标记后偏移量 | –1(没有更多的标记) |
| 标记字符串 | string |
| 标记索引 | –1(非运算符) |
第七次循环
| 字符串输出 | This is a testLabVIEWstring |
| 标记后偏移量 | –1(没有更多的标记) |
| 标记字符串 | (字符串结束) |
| 标记索引 | –2(字符串结束) |
允许空标记?(F)
—
输入字符串
—
偏移量
—
运算符(无)
—
字符串输出
—
标记后偏移量
—