Regexp question

Discussion in 'Python' started by Philippe C. Martin, Dec 1, 2004.

  1. 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
    *********************
    Philippe C. Martin, Dec 1, 2004
    #1
    1. Advertising

  2. Philippe C. Martin

    Mitja Guest

    On Wed, 1 Dec 2004 07:48:24 -0600, Philippe C. Martin
    <> 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
    Mitja, Dec 1, 2004
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Greg Hurrell
    Replies:
    4
    Views:
    150
    James Edward Gray II
    Feb 14, 2007
  2. Mikel Lindsaar
    Replies:
    0
    Views:
    465
    Mikel Lindsaar
    Mar 31, 2008
  3. Joao Silva
    Replies:
    16
    Views:
    341
    7stud --
    Aug 21, 2009
  4. Uldis  Bojars
    Replies:
    2
    Views:
    185
    Janwillem Borleffs
    Dec 17, 2006
  5. Matìj Cepl

    new RegExp().test() or just RegExp().test()

    Matìj Cepl, Nov 24, 2009, in forum: Javascript
    Replies:
    3
    Views:
    169
    Matěj Cepl
    Nov 24, 2009
Loading...

Share This Page