<div dir="ltr"><div class="gmail_quote">On Mon, Mar 28, 2011 at 9:34 PM, MRAB <span dir="ltr"><<a href="mailto:python@mrabarnett.plus.com">python@mrabarnett.plus.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div><div></div><div class="h5">On 28/03/2011 18:46, Daniel da Silva wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
    I would approach that with<br>
<br>
    numbers = (int(m.group()) for m in re.finditer(r"\b\d+\b"))<br>
    numbers = [n for n in numbers if 1 <= n <= 10]<br>
<br>
<br>
To follow up on this: he has pointed out an existing way of doing<br>
something that fully covers the goal of your addition. The current way<br>
is both straightforward, elegant, and self-describes what it is doing, I<br>
believe. I think if we have an obvious way to do it, we usually want to<br>
be consistent with our normal attempt of having one obvious way to do it.<br>
<br>
If his way wasn't obvious, you may not be Dutch.<br>
<br>
</blockquote></div></div>
I was thinking about 2 possible uses:<br>
<br>
1. Where you would have a regex in a configuration or setup file, or<br>
validation for a field, but with extra checks which are tricky or<br>
impossible in a regex, eg date ranges.<br>
<br>
2. Where you want to perform a check during the matching, much in the<br>
way that you would use a lookahead or lookbehind.<br>
<br>
So far no-one has been able to come up with a convincing real world use<br>
case. Still, it's better to make a bad suggestion than not to make a<br>
good one. :-)</blockquote><div><br>A regex-with-filter can be useful, but I don't think any changes to the stdlib are necessary, a simple 3rd party module (or even just a cookbook recipe) would suffice. <br></div><div>

<br>I've used something very similar (I rolled my own, a regexp wrapper with a filter function). I was scraping blogs for links to user profiles on various social sites. I wanted to hand-code how user-profile URLs looked for some major sites, and ended up using regexps. I needed the filtering to deal with various edge-cases. (There are better solutions but I needed something quick!)<br>

<br>Writing the wrapper class and mimicking the re object API was easy. I like the idea of allowing separate filters for different named groups. (This would work especially well with the new regex module, which allows more than 99 groups and has better support for named groups.)<br>

<br>If there's interest I could clean up my code and publish it somewhere.<br><br>- Tal Einat<br></div></div></div>