[Gllug] matching strings in python

Stuart Sears stuart at sjsears.com
Sun Oct 2 15:22:05 UTC 2011


On 02/10/2011 11:08, dudes dudes wrote:
>
>
>  >
>  > RTFM :)
>
> TFM has been Read b4 starting the project :P

well, that's very good. Did you go back to it when your pattern wasn't 
working?

>  > http://docs.python.org/library/re.html#matching-vs-searching
>  >
>  > specifically:
>  > where are these numbers on each line? Are they at the start? if not,
>  > re.match won't find them without a preceding wildcard.
>
> yes there are one each line and at the start of each

so your pattern can be simpler.

>  > Also, there's no need for the 'this=...' bit, unless you actually feel
>  > you need the variable.
>
> yes I need "this" as variable even though it has a different variable
> name in the source code.
>
>  > Something like the following
>  >
>  > for line in open('filename'):
>  > if re.search('1000[01]', line):
>  > print line
>
>
>  > is more likely to succeed
>
> YES True, but there are 10.000 different digit numbers, but I only need
> to find 10 numbers .. such as 10000, 10001, 1286, 3412, 3512, 456,
> 653,,,etc and they are different. Therefore I need to retrieve one out
> of these 10 numbers !

The regex pattern I gave you matches '10000' and '10001', which was all 
you asked for.
Your response above sort-of suggests that you don't realise this?

It would be fairly trivial to extend it to match all the numbers you 
want. Something like...

re.match('^(1000[01]|653|1286|...)', line)

(this time being specific that the numbers are at the beginning of each 
line.)

another point: how many lines are there in the file?
For more than a small number it is arguably more efficient to do this:

numpatt = re.compile(PATTERN)
for line in this:
     if numpatt.match(line):
         print line

Or you essentially re-run the re.compile process for every line.

[snip]
> yes True but using DrPython as an editor won't let you to save the code
> if you have syntax issues.

We don't know that.

>  > This example was fairly trivial, but if you are asking for help with
>  > code like this, it would help if you actually post working excerpts from
>  > it. Or excerpts that throw the errors you are asking about.
>
> agree and thank you :)

Regards,

Stuart
-- 
Stuart Sears RHCA etc.
"It's today!" said Piglet.
"My favourite day," said Pooh.
--
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list