Re: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: "Pranav Lal" <pranav.lal@xxxxxxxxx>
- To: programmingblind@xxxxxxxxxxxxx
- Date: Sat, 31 May 2008 15:02:33 +0530
Hi Ken,
Many many thanks. This does exactly what I want.
Pranav
On 5/31/08, Ken Perry <whistler@xxxxxxxxxxxxx> wrote:
>
>
> Ok this will do what you want. Now remember that visual basic is kind of
> stupid in that if you name the region it does not keep it in order. So they
> say if you name the region you need to make sure you either don't care about
> the order they are returned in or you always use the named to make sure you
> get what you think you will. Your regex was not getting what you wanted if
> you would have looped through your group you would have found that you were
> only returning a letter for each of 6 results you were getting. After I
> changed your print to a loop I started tinkering with the regex string and I
> now have it returning the first name, last name the start date, and the end
> date with month and the project name which is what I think you wanted. If
> not you will have to tinker a bit more with the regex string I have made.
> Here is my code.
>
> *NOTE* I notice that good old Microsoft ahs rapped my code so before you
> can compile this make sure you put all my regex string on one line.
>
>
>
> Imports System.Text.RegularExpressions
> Module Module1
>
>
> Sub Main()
> Dim RString As String =
> "(?<fName>\w+)_(?<lName>\w+)\-(?<StartDay>\w+)to(?<EndDay>\w+)_(?<procname>\
> w+).xls"
>
>
>
>
> Try
> Dim TestRegex As Regex = New Regex(rString,
> RegexOptions.IgnoreCase)
>
> Dim S As String = "pranav_lal-12To23April2008_veta.xls"
>
> Dim M As Match = TestRegex.Match(S)
>
> If M.Success Then
> Console.WriteLine("ok")
> Console.WriteLine(M.Groups.Count)
> Else
> Console.WriteLine("error")
>
> End If
> Dim groups As GroupCollection = M.Groups
> Dim i As Integer
> For i = 1 To groups.Count
>
>
>
> Console.WriteLine(String.Format("Value {0}",
> groups.Item(i).Value))
> Next
> Catch x As ArgumentException
> Console.WriteLine(x.ToString)
> End Try
> Console.WriteLine("Hit <enter> to exit...")
>
> Console.ReadLine()
>
>
> End Sub
>
> End Module
>
>
>
>
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Pranav Lal
> Sent: Friday, May 30, 2008 5:25 PM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: RE: Getting only numbers instead of values when using regular
> expression groups in Visual Basic 2008 express
>
> Hi Ken,
> I want to extract different parts of the match. This is why I have made
> groups. So, I want to say something like firstName=m.groups("fname").value
> and get the first name of the employee.
>
> Pranav
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Ken Perry
> Sent: Friday, May 30, 2008 9:07 PM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: RE: Getting only numbers instead of values when using regular
> expression groups in Visual Basic 2008 express
>
>
>
> Ok ignore that last answer. I just looked at how the regex stuff works I am
> wondering why you did the Dim group etc. I just tried your code using the
> following line to print out the match:
>
> Console.WriteLine(String.Format("Value {0}", M.Value))
>
> It writes out what it matched like that so if you tell me what you were
> trying to do with the dim as group then I can probably tell you how to do
> it.
>
> Ken
>
>
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Ken Perry
> Sent: Friday, May 30, 2008 7:50 AM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: RE: Getting only numbers instead of values when using regular
> expression groups in Visual Basic 2008 express
>
>
> You need to change your code to use .text rather than .value I think. .
>
> Ken
>
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Pranav Lal
> Sent: Friday, May 30, 2008 1:58 AM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: Getting only numbers instead of values when using regular
> expression groups in Visual Basic 2008 express
>
> Hi all,
>
> I have a regular expression in visual basic .net 2008. I am using it to
> validate the file names of reports I recieve. I want to use groups in
> regular expressions to extract information from the file name.
> Whenever I access any item of the groups collection though I can only see a
> number. I see no names.
>
> My regular expression is as follows.
> (?<fName>\w)+_(?<lName>\w)+\-(\w|\D)+to(\w|\d)+_(?<projectName>\w)+\.xls$
>
> my test string looks like
> Pranav_Lal-25To30May2008_vita.xls
>
> Any one any ideas? I am posting the full source of the test program below.
>
> Pranav
> Imports System.Text.RegularExpressions
>
> Module Module1
>
> Sub Main()
> Dim rString As String =
> "(?<fName>\w)+_(?<lName>\w)+\-(\w|\D)+to(\w|\d)+_(?<projectName>\w)+\.xls$"
>
> Try
> Dim TestRegex As Regex = New Regex(rString,
> RegexOptions.IgnoreCase)
>
> Dim S As String = "pranav_lal-12To23April2008_veta.xls"
>
> Dim M As Match = TestRegex.Match(S)
> If M.Success Then
> Console.WriteLine("ok")
> Else
> Console.WriteLine("error")
>
> End If
> Dim groups As GroupCollection = M.Groups
> Console.WriteLine(groups.Item(1).Value)
>
> Catch x As ArgumentException
> Console.WriteLine(x.ToString)
> End Try
> Console.WriteLine("Hit <enter> to exit...")
>
> Console.ReadLine()
>
>
> End Sub
> End Module
> __________
> View the list's information and change your settings at
> http://www.freelists.org/list/programmingblind
>
> __________
> View the list's information and change your settings at
> http://www.freelists.org/list/programmingblind
>
> __________
> View the list's information and change your settings at
> http://www.freelists.org/list/programmingblind
>
> __________
> View the list's information and change your settings at
> http://www.freelists.org/list/programmingblind
>
> __________
> View the list's information and change your settings at
> http://www.freelists.org/list/programmingblind
>
>
__________
View the list's information and change your settings at
http://www.freelists.org/list/programmingblind
- Follow-Ups:
- References:
- Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Pranav Lal
- RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Ken Perry
- RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Ken Perry
- RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Pranav Lal
- RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Ken Perry
Other related posts:
- » Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- » Re: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- » RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- » RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- » RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- » RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- » Re: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- » RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Pranav Lal
- RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Ken Perry
- RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Ken Perry
- RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Pranav Lal
- RE: Getting only numbers instead of values when using regular expression groups in Visual Basic 2008 express
- From: Ken Perry