InStr 函数 (Visual Basic)
更新:2007 年 11 月
返回一个整数,该整数指定一个字符串在另一个字符串中的第一个匹配项的起始位置。
Public Shared Function InStr(_
ByVal String1 As String, _
ByVal String2 As String, _
Optional ByVal Compare As CompareMethod _
) As Integer
' -or-
Public Shared Function InStr(_
ByVal Start As Integer, _
ByVal String1 As String, _
ByVal String2 As String, _
Optional ByVal Compare As Microsoft.VisualBasic.CompareMethod _
) As Integer
参数
Start
可选。数值表达式,设置每个搜索的起始位置。如果省略该参数,则从第一个字符位置开始搜索。起始索引从一开始。String1
必选。搜索的 String 表达式。String2
必选。搜索的 String 表达式。Compare
可选。指定字符串比较的类型。如果省略 Compare,则由 Option Compare 设置确定比较类型。
设置
Compare 参数设置包括:
常数 |
值 |
说明 |
---|---|---|
Binary |
0 |
执行二进制比较 |
Text |
1 |
执行文本比较 |
返回值
If |
InStr 返回 |
---|---|
String1 为零长度或 Nothing |
0 |
String2 为零长度或 Nothing |
start |
未找到 String2 |
0 |
String2 位于 String1 |
匹配开始的位置 |
Start > String2 |
0 |
异常
异常类型 |
错误号 |
条件 |
---|---|---|
Start < 1. |
如果正在升级使用非结构化错误处理方式的 Visual Basic 6.0 应用程序,请参见“错误号”一列。(您可以根据 Number 属性(Err 对象)比较错误号。)然而,如果可能,应当考虑用 Visual Basic 的结构化异常处理概述替换这种错误控制。
备注
通常,InStr 函数用于分析字符串。
说明: |
---|
在 Visual Basic 的较早版本中,InStrB 函数返回字节数,而不是字符位置。它主要用于在双字节字符集 (DBCS) 应用程序中转换字符串。所有 Visual Basic 2005 字符串均采用 Unicode 的形式,并且不再支持 InStrB。 |
示例
本例使用 InStr 函数返回一个字符串在另一个字符串中的第一个匹配项的位置。
' String to search in.
Dim SearchString As String = "XXpXXpXXPXXP"
' Search for "P".
Dim SearchChar As String = "P"
Dim TestPos As Integer
' A textual comparison starting at position 4. Returns 6.
TestPos = InStr(4, SearchString, SearchChar, CompareMethod.Text)
' A binary comparison starting at position 1. Returns 9.
TestPos = InStr(1, SearchString, SearchChar, CompareMethod.Binary)
' If Option Compare is not set, or set to Binary, return 9.
' If Option Compare is set to Text, returns 3.
TestPos = InStr(SearchString, SearchChar)
' Returns 0.
TestPos = InStr(1, SearchString, "W")
要求
**模块:**Strings
**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)