InStr Function (Visual Basic)

Returns an integer specifying the start position of the first occurrence of one string within another.

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

Parameters

  • Start
    Optional. Numeric expression that sets the starting position for each search. If omitted, search begins at the first character position. The start index is 1-based.

  • String1
    Required. String expression being searched.

  • String2
    Required. String expression sought.

  • Compare
    Optional. Specifies the type of string comparison. If Compare is omitted, the Option Compare setting determines the type of comparison.

Settings

The Compare argument settings are:

Constant

Value

Description

Binary

0

Performs a binary comparison

Text

1

Performs a text comparison

Return Value

If

InStr returns

String1 is zero length or Nothing

0

String2 is zero length or Nothing

start

String2 is not found

0

String2 is found within String1

Position where match begins

Start > String2

0

Exceptions

Exception type

Error number

Condition

ArgumentException

5

Start < 1.

See the "Error number" column if you are upgrading Visual Basic 6.0 applications that use unstructured error handling. (You can compare the error number against the Number Property (Err Object).) However, when possible, you should consider replacing such error control with Structured Exception Handling Overview for Visual Basic.

Remarks

Typically, the InStr function is used when parsing strings.

Note

The InStrB function in previous versions of Visual Basic returns a number of bytes rather than a character position. It is used primarily for converting strings in double-byte character set (DBCS) applications. All Visual Basic 2005 strings are in Unicode, and InStrB is no longer supported.

Example

This example uses the InStr function to return the position of the first occurrence of one string within another.

' 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")

Requirements

Namespace:Microsoft.VisualBasic

**Module:**Strings

Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

See Also

Concepts

Programming Element Support Changes Summary

Reference

InStrRev Function (Visual Basic)

Option Compare Statement

StrComp Function (Visual Basic)

ArgumentException

Other Resources

Strings in Visual Basic

Introduction to Strings in Visual Basic