Regex all characters python

Python RegEx

A RegEx, or Regular Expression, is a sequence of characters that forms a search pattern.

RegEx can be used to check if a string contains the specified search pattern.

RegEx Module

Python has a built-in package called re , which can be used to work with Regular Expressions.

RegEx in Python

When you have imported the re module, you can start using regular expressions:

Example

Search the string to see if it starts with «The» and ends with «Spain»:

txt = «The rain in Spain»
x = re.search(«^The.*Spain$», txt)

RegEx Functions

The re module offers a set of functions that allows us to search a string for a match:

Function Description
findall Returns a list containing all matches
search Returns a Match object if there is a match anywhere in the string
split Returns a list where the string has been split at each match
sub Replaces one or many matches with a string

Metacharacters

Metacharacters are characters with a special meaning:

Character Description Example Try it
[] A set of characters «[a-m]» Try it »
\ Signals a special sequence (can also be used to escape special characters) «\d» Try it »
. Any character (except newline character) «he..o» Try it »
^ Starts with «^hello» Try it »
$ Ends with «planet$» Try it »
* Zero or more occurrences «he.*o» Try it »
+ One or more occurrences «he.+o» Try it »
? Zero or one occurrences «he.?o» Try it »
<> Exactly the specified number of occurrences «he.o» Try it »
| Either or «falls|stays» Try it »
() Capture and group
Читайте также:  Java все виды map

Special Sequences

A special sequence is a \ followed by one of the characters in the list below, and has a special meaning:

Character Description Example Try it
\A Returns a match if the specified characters are at the beginning of the string «\AThe» Try it »
\b Returns a match where the specified characters are at the beginning or at the end of a word
(the «r» in the beginning is making sure that the string is being treated as a «raw string»)
r»\bain»
r»ain\b»
Try it »
Try it »
\B Returns a match where the specified characters are present, but NOT at the beginning (or at the end) of a word
(the «r» in the beginning is making sure that the string is being treated as a «raw string»)
r»\Bain»
r»ain\B»
Try it »
Try it »
\d Returns a match where the string contains digits (numbers from 0-9) «\d» Try it »
\D Returns a match where the string DOES NOT contain digits «\D» Try it »
\s Returns a match where the string contains a white space character «\s» Try it »
\S Returns a match where the string DOES NOT contain a white space character «\S» Try it »
\w Returns a match where the string contains any word characters (characters from a to Z, digits from 0-9, and the underscore _ character) «\w» Try it »
\W Returns a match where the string DOES NOT contain any word characters «\W» Try it »
\Z Returns a match if the specified characters are at the end of the string «Spain\Z» Try it »

Sets

A set is a set of characters inside a pair of square brackets [] with a special meaning:

Set Description Try it
[arn] Returns a match where one of the specified characters ( a , r , or n ) is present Try it »
[a-n] Returns a match for any lower case character, alphabetically between a and n Try it »
[^arn] Returns a match for any character EXCEPT a , r , and n Try it »
[0123] Returns a match where any of the specified digits ( 0 , 1 , 2 , or 3 ) are present Try it »
4 Returns a match for any digit between 0 and 9 Try it »
38 Returns a match for any two-digit numbers from 00 and 59 Try it »
[a-zA-Z] Returns a match for any character alphabetically between a and z , lower case OR upper case Try it »
[+] In sets, + , * , . , | , () , $ , <> has no special meaning, so [+] means: return a match for any + character in the string Try it »

The findall() Function

The findall() function returns a list containing all matches.

Example

Print a list of all matches:

txt = «The rain in Spain»
x = re.findall(«ai», txt)
print(x)

The list contains the matches in the order they are found.

If no matches are found, an empty list is returned:

Example

Return an empty list if no match was found:

txt = «The rain in Spain»
x = re.findall(«Portugal», txt)
print(x)

The search() Function

The search() function searches the string for a match, and returns a Match object if there is a match.

If there is more than one match, only the first occurrence of the match will be returned:

Example

Search for the first white-space character in the string:

txt = «The rain in Spain»
x = re.search(«\s», txt)

print(«The first white-space character is located in position:», x.start())

If no matches are found, the value None is returned:

Example

Make a search that returns no match:

txt = «The rain in Spain»
x = re.search(«Portugal», txt)
print(x)

The split() Function

The split() function returns a list where the string has been split at each match:

Example

Split at each white-space character:

txt = «The rain in Spain»
x = re.split(«\s», txt)
print(x)

You can control the number of occurrences by specifying the maxsplit parameter:

Example

Split the string only at the first occurrence:

txt = «The rain in Spain»
x = re.split(«\s», txt, 1)
print(x)

The sub() Function

The sub() function replaces the matches with the text of your choice:

Example

Replace every white-space character with the number 9:

txt = «The rain in Spain»
x = re.sub(«\s», «9», txt)
print(x)

You can control the number of replacements by specifying the count parameter:

Example

Replace the first 2 occurrences:

txt = «The rain in Spain»
x = re.sub(«\s», «9», txt, 2)
print(x)

Match Object

A Match Object is an object containing information about the search and the result.

Note: If there is no match, the value None will be returned, instead of the Match Object.

Example

Do a search that will return a Match Object:

txt = «The rain in Spain»
x = re.search(«ai», txt)
print(x) #this will print an object

The Match object has properties and methods used to retrieve information about the search, and the result:

.span() returns a tuple containing the start-, and end positions of the match.
.string returns the string passed into the function
.group() returns the part of the string where there was a match

Example

Print the position (start- and end-position) of the first match occurrence.

The regular expression looks for any words that starts with an upper case «S»:

txt = «The rain in Spain»
x = re.search(r»\bS\w+», txt)
print(x.span())

Example

Print the string passed into the function:

txt = «The rain in Spain»
x = re.search(r»\bS\w+», txt)
print(x.string)

Example

Print the part of the string where there was a match.

The regular expression looks for any words that starts with an upper case «S»:

txt = «The rain in Spain»
x = re.search(r»\bS\w+», txt)
print(x.group())

Note: If there is no match, the value None will be returned, instead of the Match Object.

Источник

Regex Cheat Sheet: A Quick Guide to Regular Expressions in Python

The tough thing about learning data science is remembering all the syntax. While at Dataquest we advocate getting used to consulting the Python documentation, sometimes it’s nice to have a handy PDF reference, so we’ve put together this Python regular expressions (regex) cheat sheet to help you out!

This regex cheat sheet is based on Python 3’s documentation on regular expressions.

If you’re interested in learning Python, we have free-to-start interactive Beginner and Intermediate Python programming courses you should check out.

Regular Expressions for Data Science (PDF)

python-regular-expressions-cheatsheet_pic

Special Characters

^ | Matches the expression to its right at the start of a string. It matches every such instance before each \n in the string.

$ | Matches the expression to its left at the end of a string. It matches every such instance before each \n in the string.

. | Matches any character except line terminators like \n .

\ | Escapes special characters or denotes character classes.

A|B | Matches expression A or B . If A is matched first, B is left untried.

+ | Greedily matches the expression to its left 1 or more times.

* | Greedily matches the expression to its left 0 or more times.

? | Greedily matches the expression to its left 0 or 1 times. But if ? is added to qualifiers ( + , * , and ? itself) it will perform matches in a non-greedy manner.

| Matches the expression to its left m times, and not less.

| Matches the expression to its left m to n times, and not less.

? | Matches the expression to its left m times, and ignores n . See ? above.

Character Classes (a.k.a. Special Sequences)

\w | Matches alphanumeric characters, which means a-z , A-Z , and 0-9 . It also matches the underscore, _ .

\d | Matches digits, which means 0-9 .

\s | Matches whitespace characters, which include the \t , \n , \r , and space characters.

\S | Matches non-whitespace characters.

\b | Matches the boundary (or empty string) at the start and end of a word, that is, between \w and \W .

\B | Matches where \b does not, that is, the boundary of \w characters.

\A | Matches the expression to its right at the absolute start of a string whether in single or multi-line mode.

\Z | Matches the expression to its left at the absolute end of a string whether in single or multi-line mode.

Sets

[ ] | Contains a set of characters to match. [amk] | Matches either a , m , or k . It does not match amk . [a-z] | Matches any alphabet from a to z . [a\-z] | Matches a , — , or z . It matches — because \ escapes it. [a-] | Matches a or — , because — is not being used to indicate a series of characters. [a-z0-9] | Matches characters from a to z and also from 0 to 9 . [(+*)] | Special characters become literal inside a set, so this matches ( , + , * , and ) . [^ab5] | Adding ^ excludes any character in the set. Here, it matches characters that are not a , b , or 5 .

Groups

( ) | Matches the expression inside the parentheses and groups it.

(? ) | Inside parentheses like this, ? acts as an extension notation. Its meaning depends on the character immediately to its right.

(?PAB) | Matches the expression AB , and it can be accessed with the group name.

(?aiLmsux) | Here, a , i , L , m , s , u , and x are flags:

  • a — Matches ASCII only
  • i — Ignore case
  • L — Locale dependent
  • m — Multi-line
  • s — Matches all
  • u — Matches unicode
  • x — Verbose

(?:A) | Matches the expression as represented by A , but unlike (?PAB) , it cannot be retrieved afterwards.

(?#. ) | A comment. Contents are for us to read, not for matching.

A(?=B) | Lookahead assertion. This matches the expression A only if it is followed by B .

A(?!B) | Negative lookahead assertion. This matches the expression A only if it is not followed by B .

(?P=name) | Matches the expression matched by an earlier group named “name”.

(. )\1 | The number 1 corresponds to the first group to be matched. If we want to match more instances of the same expresion, simply use its number instead of writing out the whole expression again. We can use from 1 up to 99 such groups and their corresponding numbers.

re.findall(A, B) | Matches all instances of an expression A in a string B and returns them in a list.

re.search(A, B) | Matches the first instance of an expression A in a string B , and returns it as a re match object.

re.split(A, B) | Split a string B into a list using the delimiter A .

re.sub(A, B, C) | Replace A with B in the string C .

Useful Regex Resources for Python:

Источник

Оцените статью