On Thu, Aug 21, 2008 at 6:15 PM, Tim Chase <[EMAIL PROTECTED]>wrote: > > > So i'm working on a view that will need to parse character > > strings that will have a predictable structure, but dynamic > > content. The format will look like > > "%Zxxxxxxxxxxxxxx^xxxxxxxxxx?;xxxxxxxxxxxxxx? where all x are > > the unpredictable characters and all the rest will be present > > in EVERY string, regardless of content. I'm relatively new to > > django, so there are many functions, and options that i'm > > unaware of, and i'm sure there is some type of split() > > modifier, or some related function that would help in parsing > > the text for use as variety of variables derived from the > > original string. > > This sounds like a common use for regular expressions: > > >>> s = "%Zxxxxxxxxxxxxxx^xxxxxxxxxx?;xxxxxxxxxxxxxx?" > >>> import re > >>> r = re.compile(r"%Z([^^]*)\^([^?]*)\?;([^?]*)\?") > >>> m = r.match(s) > >>> m.groups() > ('xxxxxxxxxxxxxx', 'xxxxxxxxxx', 'xxxxxxxxxxxxxx') > >>> a, b, c = m.groups() > > It gets a little confusing to parse that regular expression > because of all the escaping but it's > > %Z literal "%Z" > (...) first grouping > [^^]* zero or more characters that aren't a "^" > \^ a literal "^" > (...) second grouping > [^?]* zero or more characters that aren't a "?" > \?; a literal "?;" > (...) third grouping > [^?]* zero or more characters that aren't a "?" > \? a literal "?" > > If you need the transform in a view, you'd need to create a > custom filter (see the online help about creating your own filters) > > > Also, does anyone happen to know of some command within django > > that will allow me to capture a specific number of leading > > characters? Something like foo = > > original_string.MAGICFUNCTION(4) that would capture the first > > 4 characters and save them to foo would be awesome. > > that's easy: > > >>> original_string = "this is a test" > >>> original_string[:4] > 'this' > It may be worth noting that what is described above are features of Python *that can be used *in django, not features of django itself. I think this line is blurry for a lot of users who are new to both Python and django and learning both concurrently.
> > Django's template language already contains a "slice" filter > > {{ original_string|slice:":4" }} > > > -tim > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---