"Dan Sommers" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > On Fri, 19 May 2006 17:44:45 GMT, > "Paul McGuire" <[EMAIL PROTECTED]> wrote: > > > "Gerhard Häring" <[EMAIL PROTECTED]> wrote in message > > news:[EMAIL PROTECTED] > > >> """ > >> The REGEXP operator is a special syntax for the regexp() user > >> function. No regexp() user function is defined by default and so use > >> of the REGEXP operator will normally result in an error message. If a > >> user-defined function named "regexp" is defined at run-time, that > >> function will be called in order to implement the REGEXP operator. > >> """ > > > This is very interesting. So I *could* define my own regexp function > > that processes not regular expressions, but say, glob-like strings, > > which are usually much easier for end users to work with (very basic > > wild-carding where '*' matches one or more characters, and '?' matches > > any single character - maybe add '#' to match any single digit and '@' > > to match any single alpha character). > > Doesn't SQL already have lightweight wildcards? > > SELECT somefield FROM sometable WHERE someotherfield LIKE '%foo%' >
Yes it does - '%' is like '*', and '_' is like '?'. But it is rare for application users to be familiar with these. In my experience, users are more likely to have seen '*' and '?'. The reason I keep citing end/application users, as opposed to developers, is for the case where the user has filled in some kind of wildcard search field, to be passed to SQL in a query. Woe to the app designer who figures that users want to enter a regular expression in such a field. '%' and '_' wildcards a little better, but frankly, I think '*' and '?' looks more like a wildcards than '%' and '_'. -- Paul
-- http://mail.python.org/mailman/listinfo/python-list