Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 496
  • Last Modified:

Regular expression

Hi,
How do i find out if a string contains any non alpha numeric characters using regular expression, in python?

Thanks

0
jyotishb
Asked:
jyotishb
1 Solution
 
RichieHindleCommented:
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
 
peprCommented:
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: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

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.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now