Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   Regexp question (http://www.velocityreviews.com/forums/t338636-regexp-question.html)

Philippe C. Martin 12-01-2004 01:48 PM

Regexp question
 
I realize this is more a regexp question than a python question, but maybe one
of the re object could help me:

I have wish to know how to _no_ match:

This is but an example of the data I handle:

xx xx xx xx xx xx xx [yy yy yy yy yy yy yy] (zz zz zz zz)

I currently can retrieve the three group of logical data blocks with:

l_str = 'xx xx xx xx xx xx xx [yy yy yy yy yy yy yy] (zz zz zz zz)'
p = re.compile(r'([a-f-0-9\s]*) (\[[a-f-0-9\s]*\])
(\([a-f-0-9\s]*\))',re.IGNORECASE) #OK
g = p.search(l_str)


What I would rather do is.

"get the data block that is _not_ between brackets or parenthesis i.e; 'xx xx
xx xx xx xx xx' knowing that the intial string could be:

[yy yy yy yy yy yy yy] xx xx xx xx xx xx xx (zz zz zz zz)


Any clue ?

Regards,

Philippe






--
*********************
Philippe C. Martin
SnakeCard LLC
www.snakecard.com
*********************

Mitja 12-01-2004 04:43 PM

Re: Regexp question
 
On Wed, 1 Dec 2004 07:48:24 -0600, Philippe C. Martin
<philippecmartin@sbcglobal.net> wrote:

> I realize this is more a regexp question than a python question, but
> maybe one
> of the re object could help me:
>
> I have wish to know how to _no_ match:
>
> This is but an example of the data I handle:
>
> xx xx xx xx xx xx xx [yy yy yy yy yy yy yy] (zz zz zz zz)
>
> I currently can retrieve the three group of logical data blocks with:
>
> l_str = 'xx xx xx xx xx xx xx [yy yy yy yy yy yy yy] (zz zz zz zz)'
> p = re.compile(r'([a-f-0-9\s]*) (\[[a-f-0-9\s]*\])
> (\([a-f-0-9\s]*\))',re.IGNORECASE) #OK
> g = p.search(l_str)
>
>
> What I would rather do is.
>
> "get the data block that is _not_ between brackets or parenthesis i.e;
> 'xx xx
> xx xx xx xx xx' knowing that the intial string could be:
>
> [yy yy yy yy yy yy yy] xx xx xx xx xx xx xx (zz zz zz zz)
>
>
> Any clue ?


regexps seem an overkill for the task at hand.

If data is really as simple as you suggest, you can try the following:
>>> s = 'xx [y y] (z z)'
>>> s = s[:s.index('(')] + s[s.index(')')+1:]
>>> s

'xx [y y] '
>>> s = s[:s.index('[')] + s[s.index(']')+1:]
>>> s

'xx '
>>> s.strip()

'xx'


Relevant lines:
s = s[:s.index('(')] + s[s.index(')'):]
s = s[:s.index('[')] + s[s.index(']')+1:]
s = s.strip()
--
Mitja


All times are GMT. The time now is 10:51 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.