Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > Finding a SubString within a String

Reply
Thread Tools

Finding a SubString within a String

 
 
Badass Scotsman
Guest
Posts: n/a
 
      03-31-2006
Hello,

Using VB and ASP,NET I would like to be able to search a STRING for a
smaller STRING within, based on the characters which appear before and
after.

For example:

String1 = " That was a tasty burger"

How can I return the word Tasty, by referencing the word "a" and
"burger"....

In pseudo style:

Find all characters between " a " and " burger" (note the spaces), and store
as a string

Result:
tasty


Any ideas?

Regards,

Gary.


 
Reply With Quote
 
 
 
 
Flinky Wisty Pomm
Guest
Posts: n/a
 
      03-31-2006
This is what regular expressions are for. There's a quick overview of
match groups and VB.Net at
http://www.regular-expressions.info/dotnet.html

 
Reply With Quote
 
 
 
 
S. Justin Gengo
Guest
Posts: n/a
 
      03-31-2006
Gary,

I agree with Flinky. Regular Expressions are probably the best way to go.
However here are a few subroutines I wrote a while ago that do it a
different way if you'd like:

Really the very first method is the answer to the example you give. I just
have a few other overloaded methods so that the start and end flags of the
string(s) being searched for may be varied.

Public Function ExtractString(ByVal stringToSearch As String, ByVal
startFlag As String, ByVal endFlag As String) As String
Try
Dim mintStartLocation, mintEndLocation As Int32
Dim mstrFound As String = Nothing
'---Get the start location
mintStartLocation = stringToSearch.IndexOf(startFlag)
'---Check that a start location was found and that it isn't at the end of
the string
If (mintStartLocation > -1) And (mintStartLocation < stringToSearch.Length)
Then
'Search for the end location
mintEndLocation = stringToSearch.IndexOf(endFlag, mintStartLocation)
'---Extract the string found
If mintEndLocation = -1 Then
'---If no end location was found then grab everything from the start to the
end
mstrFound = stringToSearch.Substring(mintStartLocation)
Else
mstrFound = stringToSearch.Substring(mintStartLocation, (mintEndLocation -
mintStartLocation))
End If
End If
Return mstrFound
Catch e As Exception
Throw e
End Try
End Function

Public Function ExtractString(ByVal stringToSearch As String, ByVal
startIndex As Int32, ByVal startFlag As String, ByVal endFlag As String) As
String
Try
Dim mintStartLocation, mintEndLocation As Int32
Dim mstrFound As String = Nothing
'---Get the start location
mintStartLocation = stringToSearch.IndexOf(startFlag, startIndex)
'---Check that a start location was found and that it isn't at the end of
the string
If (mintStartLocation > -1) And (mintStartLocation < stringToSearch.Length)
Then
'Search for the end location
mintEndLocation = stringToSearch.IndexOf(endFlag, mintStartLocation)
'---Extract the string found
If mintEndLocation = -1 Then
'---If no end location was found then grab everything from the start to the
end
mstrFound = stringToSearch.Substring(mintStartLocation)
Else
mstrFound = stringToSearch.Substring(mintStartLocation, (mintEndLocation -
mintStartLocation))
End If
End If
Return mstrFound
Catch e As Exception
Throw e
End Try
End Function

Public Function ExtractString(ByVal stringToSearch As String, ByVal
startFlag As String, ByVal endFlags() As String) As String
Try
Dim mintStartLocation, mintEndLocation, mintTempEndLocation As Int32
Dim mstrFound As String = Nothing
Dim mblnEndFound As Boolean = False
'---Get the start location
mintStartLocation = stringToSearch.IndexOf(startFlag)
'---Check that a start location was found and that it isn't at the end of
the string
If (mintStartLocation > -1) And (mintStartLocation < stringToSearch.Length)
Then
'---Set the end location equal to the end of the string to search
mintEndLocation = stringToSearch.Length
'---Move through each string in the endflag array and set the end flag
location to the closest one.
For Each EndString As String In endFlags
mintTempEndLocation = stringToSearch.IndexOf(EndString, mintStartLocation)
If (mintTempEndLocation > -1) And (mintTempEndLocation < mintEndLocation)
Then
mintEndLocation = mintTempEndLocation
End If
Next
'---Extract the string found
mstrFound = stringToSearch.Substring(mintStartLocation, (mintEndLocation -
mintStartLocation))
End If
Return mstrFound
Catch e As Exception
Throw e
End Try
End Function

Public Function ExtractString(ByVal stringToSearch As String, ByVal
startIndex As Int32, ByVal startFlag As String, ByVal endFlags() As String)
As String
Try
Dim mintStartLocation, mintEndLocation, mintTempEndLocation As Int32
Dim mstrFound As String = Nothing
Dim mblnEndFound As Boolean = False
'---Get the start location
mintStartLocation = stringToSearch.IndexOf(startFlag, startIndex)
'---Check that a start location was found and that it isn't at the end of
the string
If (mintStartLocation > -1) And (mintStartLocation < stringToSearch.Length)
Then
'---Set the end location equal to the end of the string to search
mintEndLocation = stringToSearch.Length
'---Move through each string in the endflag array and set the end flag
location to the closest one.
For Each EndString As String In endFlags
mintTempEndLocation = stringToSearch.IndexOf(EndString, mintStartLocation)
If (mintTempEndLocation > -1) And (mintTempEndLocation < mintEndLocation)
Then
mintEndLocation = mintTempEndLocation
End If
Next
'---Extract the string found
mstrFound = stringToSearch.Substring(mintStartLocation, (mintEndLocation -
mintStartLocation))
End If
Return mstrFound
Catch e As Exception
Throw e
End Try
End Function

Regards,

--
S. Justin Gengo
Web Developer / Programmer

Free code library:
http://www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche


"Badass Scotsman" <(E-Mail Removed)> wrote in message
news:e0j855$jhr$1$(E-Mail Removed)...
> Hello,
>
> Using VB and ASP,NET I would like to be able to search a STRING for a
> smaller STRING within, based on the characters which appear before and
> after.
>
> For example:
>
> String1 = " That was a tasty burger"
>
> How can I return the word Tasty, by referencing the word "a" and
> "burger"....
>
> In pseudo style:
>
> Find all characters between " a " and " burger" (note the spaces), and
> store as a string
>
> Result:
> tasty
>
>
> Any ideas?
>
> Regards,
>
> Gary.
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
FAQ 4.29 How can I count the number of occurrences of a substring within a string? PerlFAQ Server Perl Misc 0 04-22-2011 10:00 PM
FAQ 4.29 How can I count the number of occurrences of a substring within a string? PerlFAQ Server Perl Misc 0 01-04-2011 05:00 PM
Finding a substring in a binary string Tarun C Programming 6 08-23-2005 06:32 PM
RegEx search for a substring within a substring colinhumber@gmail.com Perl Misc 3 08-03-2005 04:29 PM
finding a substring from left back of a string johndesp Java 13 08-20-2004 03:42 PM



Advertisments