473,397 Members | 1,950 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,397 software developers and data experts.

Regular expression problem

I'm attempting my first regular expression (ok, I nicked some of it from a
blog) and I'm not seeing the results I expect to see. Given that it does not
work, I find myself entirely stuck. Can you help?

I'm trying to split command line parameters specified in the format:
/Startup /Model=a /view="b" /entity="/c"

Where all command line parameters start with a forward slash. They may or
may not have values following an equals sign (I plan to use a variation of
this regex to split key/value pairs) which may also contain a forward slash
(enclosed in quotes), so I need to ignore these in the split.

The code I am using to split the string is:

Regex rex = new
Regex("/(?=([^\\\"]*\\\"[^\\\"]*\\\")*(?![^\\\"]*\\\"))");
string[] values = rex.Split(strCommand);
foreach (string val in values)
System.Windows.Forms.MessageBox.Show(val);

The results I get are strange:
<blank line>
/entity="/c"
startup
/entity="/c"
model=a
/entity="/c"
view="b"
entity="/c"
entity="/c"

I think it has something to do with capturing groups being included in the
string array, but don't know how to detect this and remove them.I ran the
code through a regular expression test app (RegexBudy) and that correctly
identified the delimiters, so I guess the expression itself is correct. I
guess I'm interpreting the output wrongly.

Any suggestions ?

Thanks
Steve
Jul 5 '06 #1
1 2803
Not sure why it makes a difference, but adding the option
RegexOptions.ExplicitCapture seems to have sorted me out.

Must find myself a tutorial.

Steve

"Steve Barnett" <no****@nodomain.comwrote in message
news:uF**************@TK2MSFTNGP03.phx.gbl...
I'm attempting my first regular expression (ok, I nicked some of it from a
blog) and I'm not seeing the results I expect to see. Given that it does
not work, I find myself entirely stuck. Can you help?

I'm trying to split command line parameters specified in the format:
/Startup /Model=a /view="b" /entity="/c"

Where all command line parameters start with a forward slash. They may or
may not have values following an equals sign (I plan to use a variation
of this regex to split key/value pairs) which may also contain a forward
slash (enclosed in quotes), so I need to ignore these in the split.

The code I am using to split the string is:

Regex rex = new
Regex("/(?=([^\\\"]*\\\"[^\\\"]*\\\")*(?![^\\\"]*\\\"))");
string[] values = rex.Split(strCommand);
foreach (string val in values)
System.Windows.Forms.MessageBox.Show(val);

The results I get are strange:
<blank line>
/entity="/c"
startup
/entity="/c"
model=a
/entity="/c"
view="b"
entity="/c"
entity="/c"

I think it has something to do with capturing groups being included in
the string array, but don't know how to detect this and remove them.I ran
the code through a regular expression test app (RegexBudy) and that
correctly identified the delimiters, so I guess the expression itself is
correct. I guess I'm interpreting the output wrongly.

Any suggestions ?

Thanks
Steve

Jul 5 '06 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

9
by: Harry | last post by:
Hi there, does anyone know how I can build a regular expression e.g. for the string.search() function on runtime, depending on the content of variables? Should be something like this: var...
11
by: Dimitris Georgakopuolos | last post by:
Hello, I have a text file that I load up to a string. The text includes certain expression like {firstName} or {userName} that I want to match and then replace with a new expression. However,...
3
by: James D. Marshall | last post by:
The issue at hand, I believe is my comprehension of using regular expression, specially to assist in replacing the expression with other text. using regular expression (\s*) my understanding is...
7
by: Billa | last post by:
Hi, I am replaceing a big string using different regular expressions (see some example at the end of the message). The problem is whenever I apply a "replace" it makes a new copy of string and I...
9
by: Pete Davis | last post by:
I'm using regular expressions to extract some data and some links from some web pages. I download the page and then I want to get a list of certain links. For building regular expressions, I use...
3
by: LordHog | last post by:
Hello all, I am attempting to create a small scripting application to be used during testing. I extract the commands from the script file I was going to tokenize the each line as one of the...
25
by: Mike | last post by:
I have a regular expression (^(.+)(?=\s*).*\1 ) that results in matches. I would like to get what the actual regular expression is. In other words, when I apply ^(.+)(?=\s*).*\1 to " HEART...
5
by: shawnmkramer | last post by:
Anyone every heard of the Regex.IsMatch and Regex.Match methods just hanging and eventually getting a message "Requested Service not found"? I have the following pattern: ^(?<OrgCity>(+)+),...
1
by: sunil | last post by:
Hi, Am writing one C program for one of my module and facing one problem with the regular expression functions provided by the library libgen.h in solaris. In this library we are having two...
1
by: Shawn B. | last post by:
Greetings, I'm using a custom WebBrowser control: http://www.codeproject.com/KB/miscctrl/csEXWB.aspx When I get the DocumentSource of a web page I browsed, and run a regular expression...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.