DotNetNewsgroup.com  
web access to complete list of Microsoft.NET newsgroups
   home   |   control panel login   |   archive  |  
 
  carried group
academic
adonet
aspnet
aspnet.announcements
aspnet.buildingcontrols
aspnet.caching
aspnet.datagridcontrol
aspnet.mobile
aspnet.security
aspnet.webcontrols
aspnet.webservices
assignment_manager
datatools
dotnet.distributed_apps
dotnet.general
dotnet.myservices
dotnet.nternationalization
dotnet.scripting
dotnet.security
dotnet.vjsharp
dotnet.vsa
dotnet.xml
dotnetfaqs
framework
framework.clr
framework.compactframework
framework.component_services
framework.controls
framework.databinding
framework.drawing
framework.enhancements
framework.interop
framework.odbcnet
framework.performance
framework.remoting
framework.sdk
framework.setup
framework.webservices
framework.windowsforms
framework.wmi
frwk.windowsforms.designtime
lang.csharp
lang.jscript
lang.vb
lang.vb.controls
lang.vb.data
lang.vb.upgrade
lang.vc
lang.vc.libraries
  
 
start date: Thu, 09 Aug 2007 08:01:00 -0700,    posted on: microsoft.public.dotnet.framework.aspnet        back       

Thread Index
  1    jobs
          2    Alexey Smirnov
          3    Jesse Houwing


Regex match excluding search string in result:   
I have a string that looks like this:

'ACCEPT - The transaction succeeded. Merchant Reference Code:OrderId
Request ID: 1865550982350176174087 Authorized Amount: 10.00
Authorization Code: 123456 Authorization Time: 2007-08-09T14:18:18Z

I need to pull out that string after "Request ID: "

which in this case should be :

1865550982350176174087

This returns the full string with the search string:

Dim regexp As Regex = New Regex("Request ID: (\w+)",
RegexOptions.IgnoreCase)
Dim TransId As String = regexp.Match(CCOut).ToString
StatusLabel.Text = TransId.ToString

and this returns nothing:

Dim pattern As String = "Request ID: (\w+)" & Regex.Escape("Request
ID: ")
Dim match As Match = Regex.Match(CCOut, pattern)
StatusLabel.Text = match.Value.ToString

Thanks for any help or information!
Date:Thu, 09 Aug 2007 08:01:00 -0700   Author:  

Re: Regex match excluding search string in result:   
On Aug 9, 5:01 pm, jobs  wrote:

> I have a string that looks like this:
>
> 'ACCEPT - The transaction succeeded. Merchant Reference Code:OrderId
> Request ID: 1865550982350176174087 Authorized Amount: 10.00
> Authorization Code: 123456 Authorization Time: 2007-08-09T14:18:18Z
>
> I need to pull out that string after "Request ID: "
>
> which in this case should be :
>
> 1865550982350176174087
>
> This returns the full string with the search string:
>
> Dim regexp As Regex = New Regex("Request ID: (\w+)",
> RegexOptions.IgnoreCase)
> Dim TransId As String = regexp.Match(CCOut).ToString
> StatusLabel.Text = TransId.ToString
>
> and this returns nothing:
>
> Dim pattern As String = "Request ID: (\w+)" & Regex.Escape("Request
> ID: ")
> Dim match As Match = Regex.Match(CCOut, pattern)
> StatusLabel.Text = match.Value.ToString
>
> Thanks for any help or information!


Request\sID:\s(\w+)

or

Request\sID:\s(\d+)
Date:Thu, 09 Aug 2007 08:05:57 -0700   Author:  

Re: Regex match excluding search string in result:   
Hello jobs,


> I have a string that looks like this:
> 
> 'ACCEPT - The transaction succeeded. Merchant Reference Code:OrderId
> Request ID: 1865550982350176174087 Authorized Amount: 10.00
> Authorization Code: 123456 Authorization Time: 2007-08-09T14:18:18Z
> 
> I need to pull out that string after "Request ID: "
> 
> which in this case should be :
> 
> 1865550982350176174087
> 
> This returns the full string with the search string:
> 
> Dim regexp As Regex = New Regex("Request ID: (\w+)",
> RegexOptions.IgnoreCase)
> Dim TransId As String = regexp.Match(CCOut).ToString
> StatusLabel.Text = TransId.ToString
> and this returns nothing:
> 
> Dim pattern As String = "Request ID: (\w+)" & Regex.Escape("Request
> ID: ")
> Dim match As Match = Regex.Match(CCOut, pattern)
> StatusLabel.Text = match.Value.ToString
> Thanks for any help or information!
> 


You have two options here
1) use grouping to extract the number with the regex you're currently using
2) use a look behind to exclude the "request ID:" from the match completely.

Solution 1:
========================================================
Instead of using match.Value to get the contents of the whole match (Value 
is already of type string, so there's no need to call ToString here), you 
can use a capturing group to get the values:

Dim regex As Regex = new Regex("Request ID: (\w+)", RegexOptions.IgnoreCase)
Dim match As Match = regex.Match(CCOut, pattern)
if match.Success
StatusLabel.Text = match.Groups[1].Value  // not sure if you need to use 
Groups[] or Groups() in VB.Net

Or if you name thr group, which I always find easier to read you can use:

Dim regex As Regex = new Regex("Request ID: (?<requestid>\w+)", RegexOptions.IgnoreCase)
Dim match As Match = regex.Match(CCOut, pattern)
if match.Success
StatusLabel.Text = match.Groups["requestid"].Value // not sure if you need 
to use Groups[] or Groups() in VB.Net

Solution 2:
========================================================
by using (?<=...) you can ensure there is a text right in front of your match. 
But it does not become part of the match itself.

Dim regex As Regex = new Regex("(?<=Request ID: )\w+", RegexOptions.IgnoreCase)
Dim match As Match = regex.Match(CCOut, pattern)
if match.Success
StatusLabel.Text = match.Value // not sure if you need to use Groups[] or 
Groups() in VB.Net

You might want to try which one is faster. Or decide which one you find easier 
to read (which in turn means easier to maintain).

Jesse
Date:Thu, 9 Aug 2007 16:49:24 +0000 (UTC)   Author:  

Google
 
Web dotnetnewsgroup.com


COPYRIGHT ?2005, EUROFRONT WORLDWIDE LTD., ALL RIGHT RESERVE  |   Contact us