RegEx to match set of lines

Terry Reedy tjreedy at
Thu Apr 5 15:01:44 EDT 2018

On 4/5/2018 11:03 AM, Steven D'Aprano wrote:
> On Thu, 05 Apr 2018 14:09:23 +0530, Prahallad Achar wrote:
>> I would like to match set of lines from the below data. this data comes
>> from one of the network
> Good grief! You don't need to post your entire data set! We don't need or
> want to see hundreds of lines.


> Cut your data down to a SMALL representative sample. Explain how it is
> coming to you: it looks like you are reading the data in something
> similar to key:value format. Is that correct?
> If so, you don't need a regex. This is not Perl, we have more than one
> tool in our toolbox and don't have to force everything to be a regex.

Your bloated post will go to at least 10 archives and some unknown 1000s 
of people.

> The way I would process it would be to write a small accumulator function
> to group the lines into records, then a filter function to extract the
> records you want, and finally a function to extract the specific values
> you want from the record.

In Python, I would write a generator to yield records (groups of lines 
pertaining to one circuit.  It appears that each group starts with a 
circuid ID and ends with a blank line.  Then

for record in file:
     if wanted(record):

> Far more understandable and maintainable, and less fragile, than a
> horribly complex regex.

I have done this sort of thing in C, but mixing together the code for 
separating, identifying, and processing records made it less transparent 
than the above.

Terry Jan Reedy

More information about the Python-list mailing list