?
Solved

Regular expression

Posted on 2006-11-22
2
Medium Priority
?
494 Views
Last Modified: 2012-06-27
Hi,
How do i find out if a string contains any non alpha numeric characters using regular expression, in python?

Thanks

0
Comment
Question by:jyotishb
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 14

Expert Comment

by:RichieHindle
ID: 18000437
import re
def has_non_alpha_num(s):
    return bool(re.search(r'[^a-zA-Z0-9]', s))

print has_non_alpha_num("123")  # Prints False
print has_non_alpha_num("abc")  # Prints False
print has_non_alpha_num("Hello!")  # Prints True
0
 
LVL 29

Accepted Solution

by:
pepr earned 1500 total points
ID: 18001177
Also, you can use r'\W' special pattern sequence to match non-alphanum and not underscore characters (shortcut for [^a-zA-Z0-9_]). The alphanum plus underscore character can be expressed as r'\w' (shortcut for [a-zA-Z0-9_]). Depending on whether locale is set or not, the sequences consider ASCII letters or also 8-bit and unicode letters.

However, you can use also the method of the built-in string type which will probably be more efficient and takes into account also the 8-bit characters and Unicode strings.

print not s.isalnum()

Library reference -- 3.6.1 String Methods says:

  isalnum( )
      Return true if all characters in the string are alphanumeric and there is at least one character, false otherwise.
      For 8-bit strings, this method is locale-dependent.

  isalpha( )
      Return true if all characters in the string are alphabetic and there is at least one character, false otherwise.
      For 8-bit strings, this method is locale-dependent.

  isdigit( )
      Return true if all characters in the string are digits and there is at least one character, false otherwise.
      For 8-bit strings, this method is locale-dependent.

0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Sequence is something that used to store data in it in very simple words. Let us just create a list first. To create a list first of all we need to give a name to our list which I have taken as “COURSE” followed by equals sign and finally enclosed …
The purpose of this article is to demonstrate how we can upgrade Python from version 2.7.6 to Python 2.7.10 on the Linux Mint operating system. I am using an Oracle Virtual Box where I have installed Linux Mint operating system version 17.2. Once yo…
Learn the basics of strings in Python: declaration, operations, indices, and slicing. Strings are declared with quotations; for example: s = "string": Strings are immutable.: Strings may be concatenated or multiplied using the addition and multiplic…
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…
Suggested Courses
Course of the Month13 days, 1 hour left to enroll

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question