We all know the regular expression character classes, right? There are 12 standard classes:

[:alnum:]  [:digit:]  [:punct:]
[:alpha:]  [:graph:]  [:space:]
[:blank:]  [:lower:]  [:upper:]
[:cntrl:]  [:print:]  [:xdigit:]

But have you seen a visual representation of what these classes match? Probably not. Therefore I created a visualization that illustrates which part of the ASCII set each character class matches. Call it a cheat sheet if you like:


small version, large version

A bunch of programs that I used

Just for my own reference, in case I ever need them again, here are the one-liners I used to create this cheat sheet:

perl -nle 'printf "%08b - %08b\n", map { hex "0x".(split / /)[0], hex "0x".(split / /)[1] } $_ '
perl -nle 'printf "%03o - %03o\n", map { (split / /)[0], (split / /)[1] } $_'

And I used this perl program to generate and check the red/green matches:

use warnings;
use strict;

my $red = "\e[31m";
my $green = "\e[32m";
my $clear = "\e[0m";

my ($start, $end) = @ARGV;

die 'start or end not given' unless defined $start && defined $end;

my @classes = qw/alnum alpha blank cntrl digit graph lower print punct space upper xdigit/;

for (map { chr } $start..$end) {
    for my $class (@classes) {
        print "${green}1${clear}" if /[[:$class:]]/;
        print "${red}0${clear}" unless /[[:$class:]]/;
    }
    print "\n"
}

Credits

I was inspired to create this visualization when I saw a similar table for C's ctype.h character classification functions.

Comments

Altreus Permalink
February 26, 2013, 08:43

Save on a call to split with

map { (split / /)[0,1] }

:)

September 30, 2013, 05:21

hi, Man that is super helpful to have! Great idea, I have a bunch of char cheat-sheets I use all the time, but this is a new one. Thanks for sharing!!

July 27, 2014, 20:17

Man that is super helpful to have! Great idea, I have a bunch of char cheatsheets I use all the time, but this is a new one. Thanks for sharing!!

just download subway surfers for pc Man that is super helpful to have! Great idea, I have a bunch of char cheatsheets I use all the time, but this is a new one. Thanks for sharing!!

November 13, 2014, 09:26

yes thanks but Free mobile recharge tricks is good idea too ;) newbie blogger

November 13, 2014, 09:26

yes thanks but Free mobile recharge tricks is good idea too ;) newbie blogger

November 15, 2014, 14:41

idm cc whatsapp status Nice one bro ...

November 16, 2014, 04:16

How to use Kik Messenger on PC
How to Use Kik Messenger on Laptop and Windows PC

..............................

February 26, 2013, 15:57

Man that is super helpful to have! Great idea, I have a bunch of char cheatsheets I use all the time, but this is a new one. Thanks for sharing!!

August 20, 2014, 13:00

Nice information, Keep it up. Keep blogging. i want to looking to reading your next post eagerly.
share your files.

Justin Permalink
February 28, 2013, 17:54

I rarely see these character classes used because they tend to obscure the meaning of regular expressions because support across the standard unix tools and documentation is uneven. For example, GNU grep supports [:blank:] but the man page for GNU grep doesn't mention it. Solaris grep doesn't support character classes at all, unless you're using /usr/xpg4/bin/grep, which may. YMMV with HP-UX, AIX, IRIX/ULTRIX, etc, which all ship with their own custom implementations of regular expressions. GNU Emacs adds [:unibyte:], [:multibyte:], [:word:], [:nonascii:], [:graph:], [:ascii:], and some of those are also defined in the POSIX standard. Python may not support "standard" character classes at all-- I couldn't find any mention of them in the online docs. The actual meaning of these character classes varies as well depending on your locale environment variables. This sometimes is a good thing! Ultimately, unless you have the privilege of controlling where your regular expression is used in all cases, you have to fall back to the minimum supported syntax.

Charles Crawford Permalink
July 09, 2013, 00:29

This is very helpful! Definitely happy with this post. Thank you for sharing this.

July 12, 2013, 04:34

very useful article . thanks a lot..

July 18, 2013, 05:16

holla man (y)

July 18, 2013, 05:18

Oh my goodness! an remarkable post dude. Thank you On the other hand I’m experiencing problem with ur rss . Do not know why Unable to subscribe to it. Is there any person finding identical rss challenge? Any individual who knows kindly respond. Thnkx

July 24, 2013, 02:36

great info. thanks

Eric Permalink
August 15, 2013, 14:12

Nice, Do you know if there is a Ruby script available? I'd like to compare what is different. Thanks
Eric

November 01, 2013, 17:50

The actual meaning of these character classes varies as well depending on your locale environment variables. This sometimes is a good thing! thanks for sharing.

November 01, 2013, 17:51

This is technology article learning site where are available Latest technology news,tech news,,science and technology, Education Technology, SEO tips, Mobile technology.

Dillon Permalink
December 25, 2013, 21:10

Being a student you should always remember to collect diverse sources where you can buy dissertations especially this here believed to do by all greatest mind of past centuries. Learn and teach at the same time while discussing any-what problem or completing any given task. Underline all strong features and strengthen insufficiency or lack of exactitude when doing a research for you or me on a daily basis.

March 03, 2014, 17:03

Wow what a good post thanks for such a help

April 08, 2014, 07:24

Maybe that will be success

April 19, 2014, 06:03

thanks for the info IBPS Reasoning .

April 26, 2014, 03:46

Wow what a good post thanks for such a help.download WhatsApp for PC this information is really informative.

May 14, 2014, 04:25

This is very useful and helpful Definitely. Thank you for sharing this post. i am from manabadi ap 10th class results 2014.

July 12, 2014, 06:18

Thats really helpful, you saved my exmas.
Box Office Collection

July 13, 2014, 07:48

Awesome tutorial to get backlinks. I will sure try and ask you if need further help to get good backlinks if you don't mind.

Mouri Permalink
July 20, 2014, 18:03

Hello, and thank you Whatsapp for PC download for computer

August 04, 2014, 12:24

HelpFul Post
Visit : www.anytimeseo.blogspot.com For Seo tips and Tricks

September 12, 2014, 10:33

Thanks for taking the time to discuss this, I feel strongly that love and read more on this topic. If possible, such as gain knowledge, would you mind updating your blog with additional information? It is very useful for me.

Moun Permalink
September 16, 2014, 06:45

You can download SubWay Surfers for PC to help you in this field and course.

Magnan Permalink
September 16, 2014, 06:56

Free download iMessage for Windows is what you need now. Please keep us informed about that

Rishi Permalink
October 11, 2014, 05:06

Wow what a nice site it is. Meanwhile check this out too Shruti Hassan Hot .

Rakhi Permalink
October 11, 2014, 05:10

It is very vey nice site really its a fab Shruti Hassan Hot Must Watch

October 25, 2014, 06:42

WHATSAPP FOR PC jkfhkdsjfh

Leave a new comment

(why do I need your e-mail?)

(Your twitter name, if you have one. (I'm @pkrumins, btw.))

Type the word "computer": (just to make sure you're a human)

Please preview the comment before submitting to make sure it's OK.

Advertisements