473,414 Members | 1,606 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,414 software developers and data experts.

Help with regular expression

I'm trying to write an RE to match a string that might or might not be
ther and everything past it up to another string that might or might not
be there and everything past it to a third string that might or might
not be there and everything past it.

Say my strings are "STRING1", "STRING2", and "String3".

Would the re be:

r'((STRING1.*)(STRING2.*)(STRING3.*))'

The goal is to separate the groups by newlines, but I only want the
first group to match up to the second group and the second to match up
to the third.

Normally I would achieve this by typing:

pat = re.compile(r'((STRING1.*)(STRING2.*)(STRING3.*))')
m = pat.findall(s)
s = '\n\n'.join(m[0])

but the first group would seem to match everything.

How can I get it to do what I want?

-- Stephen

Jul 18 '05 #1
2 1207
Stephen Boulet wrote:
I'm trying to write an RE to match a string that might or might not be
ther and everything past it up to another string that might or might not
be there and everything past it to a third string that might or might
not be there and everything past it.

Say my strings are "STRING1", "STRING2", and "String3".

Would the re be:

r'((STRING1.*)(STRING2.*)(STRING3.*))'

The goal is to separate the groups by newlines, but I only want the
first group to match up to the second group and the second to match up
to the third.

Normally I would achieve this by typing:

pat = re.compile(r'((STRING1.*)(STRING2.*)(STRING3.*))')
m = pat.findall(s)
s = '\n\n'.join(m[0])

but the first group would seem to match everything.

How can I get it to do what I want?

-- Stephen


Try non-greedy wildcards: r'((STRING1.*?)(STRING2.*?)(STRING3.*?))'
- - -

should do the trick.

hth,
anton.

Jul 18 '05 #2
"anton muhin" <an********************************@rambler.ru> schrieb im
Newsbeitrag news:bk***********@news.peterlink.ru...
Stephen Boulet wrote:
I'm trying to write an RE to match a string that might or might not be
ther and everything past it up to another string that might or might not
be there and everything past it to a third string that might or might
not be there and everything past it.


Try non-greedy wildcards: r'((STRING1.*?)(STRING2.*?)(STRING3.*?))'
- - -


Since you said that each of the three strings might or not be there you
would need:

r'((STRING1.*?)?(STRING2.*?)?(STRING3.*?)?)'

Ciao Ulrich
Jul 18 '05 #3

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

Similar topics

9
by: Steve | last post by:
Hello, I am writing a script that calls a URL and reads the resulting HTML into a function that strips out everthing and returns ONLY the links, this is so that I can build a link index of various...
5
by: Bradley Plett | last post by:
I'm hopeless at regular expressions (I just don't use them often enough to gain/maintain knowledge), but I need one now and am looking for help. I need to parse through a document to find a URL,...
4
by: Neri | last post by:
Some document processing program I write has to deal with documents that have headers and footers that are unnecessary for the main processing part. Therefore, I'm using a regular expression to go...
6
by: JohnSouth | last post by:
Hi I've been using a Regular expression to test for valid email addresses. It looks like: \w+(\w+)*@\w+(\w+)*\.\w+(\w+)* I've now had 2 occassions where it has rejected and email address...
3
by: Joe | last post by:
Hi, I have been using a regular expression that I don’t uite understand to filter the valid email address. My regular expression is as follows: <asp:RegularExpressionValidator...
1
by: Rahul | last post by:
Hi Everybody I have some problem in my script. please help me. This is script file. I have one *.inq file. I want run this script in XML files. But this script errors shows . If u want i am...
3
by: Zach | last post by:
Hello, Please forgive if this is not the most appropriate newsgroup for this question. Unfortunately I didn't find a newsgroup specific to regular expressions. I have the following regular...
6
by: deepak_kamath_n | last post by:
Hello, I am relatively new to the world of regex and require some help in forming a regular expression to achieve the following: I have an input stream similar to: Slot: slot1 Description:...
14
by: Chris | last post by:
I need a pattern that matches a string that has the same number of '(' as ')': findall( compile('...'), '42^((2x+2)sin(x)) + (log(2)/log(5))' ) = Can anybody help me out? Thanks for any help!
3
by: Mr.Steskal | last post by:
Posted: Wed Jul 11, 2007 7:01 am Post subject: Regular Expression Help -------------------------------------------------------------------------------- I need help writing a regular...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
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
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
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,...

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.