This looks like exactly what i was looking for. I will try and
implement this idea right now, Thanks a ton Tim!
On Aug 21, 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 inparsing
> > thetextfor 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'
>
> 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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---