# SubStr() [v1.0.46+]

检索字符串中指定位置开始的一个或多个字符.

    NewStr := SubStr(String, StartingPos , Length)

## 参数

String

  要进行提取的字符串.

StartingPos

  指定 1 从首个字符开始, 2 从第二个开始, 依此类推(如果 StartingPos 超过了 String 长度, 则返回空字符串). 如果 StartingPos 小于 1, 那么它被看成是从字符串末尾开始的偏移. 例如, 0 表示从最后一个字符开始, 而 -1 从倒数第 2 个字符开始(但如果 StartingPos 超过了字符串的左端, 则提取从首个字符开始).

Length

  如果省略这个参数, 则默认为 "全部字符". 其他情况下, 为需提取字符的最大数目(当字符串剩余部分太短时提取的数目会比最大值少). 您还可以指定负的 Length 从而在返回字符串的末尾省略这个数目的字符(如果省略了全部或过多字符则返回空字符串).

## 返回值

此函数返回所请求的 String 的子字符串.

## 备注

功能上 SubStr 函数和 StringMid 命令相同. 但是, 推荐使用 SubStr, 因为它比 StringMid 更灵活, 且能得到更长久的更新支持.

## 相关

RegExMatch(), StringMid, StringLeft/Right, StringTrimLeft/Right

## 示例

在第 4 的位置检索一个长度为 3 个字符的子串.

    MsgBox % SubStr("123abc789", 4, 3) ; 返回 abc

分别从一个字符串的开头和结尾处开始检索一个子串.

    String := "The Quick Brown Fox Jumps Over the Lazy Dog"
    MsgBox % SubStr(String, 1, 19)  ; 返回 "The Quick Brown Fox"
    MsgBox % SubStr(String, -7)  ; 返回 "Lazy Dog"

dftg