[Tutor] finding special character string

Marilyn Davis marilyn at deliberate.com
Mon Jun 2 03:41:38 CEST 2008


On Sun, June 1, 2008 4:58 pm, Kent Johnson wrote:

> On Sun, Jun 1, 2008 at 2:04 PM, Marilyn Davis <marilyn at deliberate.com>
> wrote:
>
>> On Sun, June 1, 2008 10:30 am, Alan Gauld wrote:
>>
>>
>>> "Kent Johnson" <kent37 at tds.net> wrote
>>>
>>>
>>>
>>>> Assuming the strings are non-overlapping, i.e. the closing "." of
>>>> one string is not the opening "." of another, you can find them all
>>>> with import re re.findall(r'\..*?\.', text)
>>>
>>> Hmm, my regex hopelessness comes to the fore again.
>>> Why a *?
>>> I would probably have guessed the pattern to be
>>>
>>>
>>>
>>> \..+?\.
>>>
>
> Mine will find two adjacent periods with no intervening text, yours
> won't. Whether this makes any difference to the OP, or which is correct, I
> don't know.

Yeh, we need a better spec. I was wondering if the stuff between the text
ought not include white space, or even a word boundary.  A character class
might be better, if we knew.

Anyhow, I think we wore out the student. :^)

Marilyn Davis

>
>> This little program includes a function to test regular expressions.  I
>>  find it helpful and I give it to students.  I think such programs
>> exist on the net.
>
> I am always surprised at how many regex testers there are, because a
> simple tester comes with Python. It is called redemo.py; look for it in the
> Tools/scripts  or bin/ directory installed with Python. On my
> Mac it is at
> /Library/Frameworks/Python.framework/Versions/2.5/bin/redemo.py.
>
>
> Kent




More information about the Tutor mailing list