Book Image

Python 2.6 Text Processing: Beginners Guide

By : Jeff McNeil
Book Image

Python 2.6 Text Processing: Beginners Guide

By: Jeff McNeil

Overview of this book

<p>For programmers, working with text is not about reading their newspaper on a break; it's about taking textual data in one form and doing something to it. Extract, decrypt, parse, restructure – these are just some of the text tasks that can occupy much of a programmer's life. If this is your life, this book will make it better – a practical guide on how to do what you want with textual data in Python.</p> <p><em>Python 2.6 Text Processing Beginner's Guide</em> is the easiest way to learn how to manipulate text with Python. Packed with examples, it will teach you text processing techniques and give you the skills to work with the most popular Python libraries for transforming text from one form to another.</p> <p>The book gets you going with a quick look at some data formats, and installing the supporting libraries and components so that you're ready to get started. You move on to extracting text from a collection of sources and handling it using Python's built-in string functions and regular expressions. You look into processing structured text documents such as XML and HTML, JSON, and CSV. Then you progress to generating documents and creating templates. Finally you look at ways to enhance text output via a collection of third-party packages such as Nucular, PyParsing, NLTK, and Mako.</p>
Table of Contents (20 chapters)
Python 2.6 Text Processing Beginner's Guide
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Chapter 5: Regular Expressions


Regular expressions

  1. We need to match either a number or a dash. Another approach would be to use a '|' and explicitly match either a \d or a literal dash.

  2. Consider the (?(name-or-id)yes|no) approach using a group number versus a group name. This lets us group for precedence without assigning to a numeric group.

  3. Frequently used regular expressions will perform much better if pre-compiled. This way, they do not need to go through the process each time.

Understanding the Pythonisms

  1. The match method only matches at the beginning of a string, whereas search will scan a string for a match. The match method would make more sense when testing a small, discrete value such as an HTML form submission whereas search might be preferred when looking for a "needle in a haystack".

  2. The finditer method returns an interator whereas findall is going to return a list. The former uses less memory than the list construction.

  3. It's a non-standard Python extension. If you wish to use the expression elsewhere without modification, chances are you'll have to update it.