Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #92059

Re: Regular Expression

From Laura Creighton <lac@openend.se>
Subject Re: Regular Expression
References <c85bc324-37fe-469e-b3b1-b1d4e51bf7d8@googlegroups.com>
Date 2015-06-04 16:21 +0200
Newsgroups comp.lang.python
Message-ID <mailman.166.1433427684.13271.python-list@python.org> (permalink)

Show all headers | View raw


In a message of Thu, 04 Jun 2015 06:36:29 -0700, Palpandi writes:
>Hi All,
>
>This is the case. To split "string2" from "string1_string2" I am using 
>re.split('_', "string1_string2", 1)

And you shouldn't be.  The 3rd argument, 1 says stop after one match.

>It is working fine for string "string1_string2" and output as "string2". But actually the problem is that if a sting is "__string1_string2" and the output is "_string1_string2". It is wrong.
>
>How to fix this issue?

Depends on what you want.

Approach #1 - just use the string method, forget re, because you do not
need it.

>>>> "__string1_string2".split("_")
['', '', 'string1', 'string2']
>>>> "_string1_string2__".split("_")
['', 'string1', 'string2', '', '']

Approach #2 -- use re but with a fixed string (probably a bad idea,
you should be using approach 1 instead if you have a fixed string)

>>>> re.split('_', "__string1_string2")
['', '', 'string1', 'string2']
>>>> re.split('_', "__string1_string2__")
['', '', 'string1', 'string2', '', '']

Approach #3 - there is a real pattern here I want to use, the example
I posted to the list is a lot simpler than what I really want to do.
Ok, in this case we will match 'any number of underscores' for an
example.

>>>> p = re.compile('_*')
>>>> p.split("__string1_string2")
['', 'string1', 'string2']
>>>> p.split("__string1__string2__")
['', 'string1', 'string2', '']

Laura

Back to comp.lang.python | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Regular Expression Palpandi <palpandi111@gmail.com> - 2015-06-04 06:36 -0700
  Re: Regular Expression Larry Martell <larry.martell@gmail.com> - 2015-06-04 09:43 -0400
  Re: Regular Expression Steven D'Aprano <steve@pearwood.info> - 2015-06-04 23:54 +1000
  Re: Regular Expression Tim Chase <python.list@tim.thechases.com> - 2015-06-04 08:48 -0500
  Re: Regular Expression Peter Otten <__peter__@web.de> - 2015-06-04 16:00 +0200
  Re: Regular Expression Laura Creighton <lac@openend.se> - 2015-06-04 16:21 +0200

csiph-web