\B in Python regular expressions

23 July 2005   0 comments   Python

Mind That Age!

This blog post is 12 years old! Most likely, its content is outdated. Especially if it's technical.

Powered by Fusion×

Today I learnt about how to use the \B gadget in Python regular expressions. I've previously talked about the usefulness of \b but there's a big benefit to using \B sometimes too.

What \b does is that it is a word-boundary for alphanumerics. It allows you to find "peter" in "peter bengtsson" but not "peter" in "nickname: peterbe". In other words, all the letters have to be grouped prefixed or suffixed by a wordboundry such as newline, start-of-line, end-of-line or a non alpha character like (.

What \b does for finding alphanumerics, \B does for finding non-alphanumerics. Example:

>>> import re
>>> re.compile(r'\bX\b').findall('X + Y') 
['X'] # it can find 'X'
>>> re.compile(r'\b\+\b').findall('X + Y')
[] # same technique can't find '+'
>>> re.compile(r'\B\+\B').findall('X + Y')
['+'] # better to use \B when finding '+'
>>> re.compile(r'\BX\B').findall('X + Y')
[] # and use \B only for non-alphanumerics

The lesson is: \b is a really useful tool but it's limited to finding alphanumerics (numbers and A-Z). \B is what you have to use for finding non-alphanumerics.

Comments

Thank you for posting a comment

Your email will never ever be published


Related posts

Previous:
London bus 26 from Hackney 21 July 2005
Next:
Release package file size 29 July 2005
Related by Keyword:
Advanced live-search with AngularJS 04 February 2014
UPPER vs. ILIKE 19 April 2010
Quick PostgreSQL optimization story 11 March 2006
Are you a web developer? Then VisiBone is for you 22 January 2006
Python regular expression tester 19 September 2005
Related by Text:
\b in Python regular expressions 14 June 2005
Jacobian highlighter 02 May 2005
How to slice a rune in Go 16 March 2015
DifferenceFinder (aka. humanreadablediff.py) 06 July 2006
FacebookStatusUpdater 07 June 2007