Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> writes: >> > Btw, on this specific case, better to use non-capture group matches >> > to avoid those "empty" spaces, e.g. (if I got it right): >> >> The problem is this line here: >> >> oldmember = "".join(t) # Reconstruct the original formatting >> >> The regex *has* to capture the entire match string so that it can be >> reconstructed back to its original form, which we need to edit the full >> list of members later on. >> >> This code could use a deep rethink, but it works for now :) > > well, we can still do: > > for t in tuples: > maintype, -, -, content, -, s_ids = t > oldmember = "".join(t) > > this way, we'll be naming the relevant parameters and reconstructing > the the original form. I've already made a change much like that (the "-" syntax doesn't work, of course); I hope to post the updates series today, but it's going to be busy. > Btw, while re.findall() has an API that doesn't return match > objects which is incoherent with the normal re API, while looking > at the specs today(*), there is an alternative: re.finditer(). > We could add it to KernRE cass and use it on a way that it will use > a Match instance. Something like: > > # Original regex expression > res = Re.finditer(...) > [...] A definite possible improvement for later... :) Thanks, jon