Python RegEx

RegEx of reguliere expressies zijn een reeks tekens die een zoekpatroon vormen.

RegEx kan gebruikt worden om te controleren of een string de opgegeven zoekpatroon bevat.

RegEx module

Python biedt een module genaamd re De ingebouwde bibliotheek, die kan worden gebruikt voor het verwerken van reguliere expressies.

Importeren re Module:

import re

RegEx in Python

Importeren re Na het importeren van de module, kun je beginnen met het gebruiken van reguliere expressies:

实例

Zoek naar de tekenreeks om te controleren of deze begint met "China" en eindigt met "country":

import re
txt = "China is een groot land"
x = re.search("^China.*country$", txt)

运行实例

RegEx functies

re De module biedt een set functies die het mogelijk maken om tekenreeksen op te halen voor overeenkomsten:

Functie Beschrijving
findall Retourneert een lijst van alle overeenkomsten
search Retourneert een Match-object als er op elke positie in de tekenreeks een overeenkomst is
split Retourneert een lijst van tekenreeksen die worden gesplitst bij elke overeenkomst
sub Vervangt een of meerdere overeenkomsten met een tekenreeks

Meta-teken

Meta-tekens zijn tekens die een speciale betekenis hebben:

Tekens Beschrijving Voorbeeld TIY
[] Een groep tekens "[a-m]" Probeer het uit
\ Illustratie van speciale series (kan ook gebruikt worden om speciale tekens te ontsnappen) "\d" Probeer het uit
. Elke teken (met uitzondering van de newline) "he..o" Probeer het uit
^ Begint met "^hello" Probeer het uit
$ Eindigt met "world$" Probeer het uit
* Nul of meerdere keren optreden "aix*" Probeer het uit
+ Eenmalig of meerdere keren optreden "aix+" Probeer het uit
{} Precies opgegeven aantal optredens "al{2}" Probeer het uit
| enig "valt|bleef" Probeer het uit
(() Vangen en groeperen

Speciale series

Speciale series zijn \ gevolgd door een van de tekens in de onderstaande tabel, hebben een speciale betekenis:

Tekens Beschrijving Voorbeeld TIY
\A Retourneert een overeenkomst als het opgegeven teken zich bevindt aan het begin van de tekenreeks "\AThe" Probeer het uit
\b Retourneert een overeenkomst waarbij het opgegeven teken zich bevindt aan het begin of einde van een woord r"\bain"
r"rain\b"
Probeer het uit
Probeer het uit
\B Retourneert een overeenkomst waarbij het opgegeven teken bestaat, maar niet aan het begin (of einde) van een woord staat r"\Bain"
r"rain\B"
Probeer het uit
Probeer het uit
\d Retourneert een overeenkomst waarbij de tekenreeks cijfers bevat (cijfers 0-9) "\d" Probeer het uit
\D Retourneert een overeenkomst waarbij de tekenreeks geen cijfers bevat "\D" Probeer het uit
\s Retourneert een overeenkomst waarbij de tekenreeks witruimte tekens bevat "\s" Probeer het uit
\S Retourneert een overeenkomst waarbij de tekenreeks geen witruimte tekens bevat "\S" Probeer het uit
\w Retourneert een overeenkomst waarbij de tekenreeks willekeurige woordtekens bevat
(Tekens van a tot Z, cijfers van 0 tot 9 en het onderstreepsteken _)
"\w" Probeer het uit
\W Retourneert een overeenkomst waarbij de tekenreeks geen woordtekens bevat "\W" Probeer het uit
\Z Retourneert een overeenkomst als de opgegeven teken zich bevindt aan het einde van de tekenreeks "Spanje\Z" Probeer het uit

Verzameling (Set)

Een verzameling (Set) is een paar haakjes]} [] Een groep tekens binnen een set, die speciale betekenis heeft:

Verzameling Beschrijving Probeer het uit
[arn] Retourneer een overeenkomst die bestaat uit een van de gespecificeerde tekens (a, r of n) Probeer het uit
[a-n] Retourneer overeenkomsten van alle kleine letters tussen a en n Probeer het uit
[^arn] Retourneer overeenkomsten van alle tekens behalve a, r en n Probeer het uit
[0123] Retourneer overeenkomsten die bestaan uit een van de gespecificeerde cijfers (0, 1, 2 of 3) Probeer het uit
[0-9] Retourneer overeenkomsten van alle cijfers tussen 0 en 9 Probeer het uit
[0-5][0-9] Retourneer overeenkomsten van alle cijfers tussen 0 en 9 Probeer het uit
[a-zA-Z] Retourneer overeenkomsten van alle letters tussen a en z, zowel in kleine als in grote letters Probeer het uit
[+] In de verzameling hebben +, *, ., |, (), $, {} geen speciale betekenis, dus [+] betekent: retourneer overeenkomsten van elk +-teken in de string Probeer het uit

De functie findall()

findall() De functie retourneert een lijst met alle overeenkomsten.

实例

Print de lijst van alle overeenkomsten:

import re
str = "China is a great country"
x = re.findall("a", str)
print(x)

运行实例

De lijst bevat de overeenkomsten in de volgorde waarin ze zijn gevonden.

Retourneert een lege lijst als er geen overeenkomstige items worden gevonden:

实例

Retourneert een lege lijst als er geen overeenkomst wordt gevonden:

import re
str = "China is a great country"
x = re.findall("USA", str)
print(x)

运行实例

De functie search()

search() De functie zoekt naar overeenkomsten in de string en retourneert een Match-object als er een overeenkomst bestaat.

Retourneert alleen het eerste overeenkomstige item als er meerdere overeenkomsten zijn:

实例

Zoek de eerste witruimte-teken in de string:

import re
str = "China is a great country"
x = re.search("\s", str)
print("De eerste witruimte-teken bevindt zich op positie:", x.start())

运行实例

Retourneert de waarde als er geen overeenkomst wordt gevonden None:

实例

Voer een zoekopdracht uit die geen overeenkomst retourneert:

import re
str = "China is a great country"
x = re.search("USA", str)
print(x)

运行实例

De functie split()

split() De functie retourneert een lijst waarin de string wordt gesplitst bij elke overeenkomst:

实例

Splits de string op elke lege teken:

import re
str = "China is a great country"
x = re.split("\s", str)
print(x)

运行实例

您可以通过指定 maxsplit Parameter om het aantal verschijningen te controleren:

实例

Splits de string alleen bij de eerste verschijning:

import re
str = "China is a great country"
x = re.split("\s", str, 1)
print(x)

运行实例

De functie sub()

sub() De functie vervangt de overeenkomstige tekst met de tekst van uw keuze:

实例

Gebruik het cijfer 9 om elke lege teken te vervangen:

import re
str = "China is a great country"
x = re.sub("\s", "9", str)
print(x)

运行实例

您可以通过指定 count 参数来控制替换次数:

实例

替换前两次出现:

import re
str = "China is a great country"
x = re.sub("\s", "9", str, 2)
print(x)

运行实例

Match 对象

Match 对象是包含有关搜索和结果信息的对象。

注释:如果没有匹配,则返回值 None,而不是 Match 对象。

实例

执行会返回 Match 对象的搜索:

import re
str = "China is a great country"
x = re.search("a", str)
print(x) # 将打印一个对象

运行实例

Match 对象提供了用于取回有关搜索及结果信息的属性和方法:

  • span() 返回的元组包含了匹配的开始和结束位置
  • .string 返回传入函数的字符串
  • group() 返回匹配的字符串部分

实例

打印首个匹配出现的位置(开始和结束位置)。

正则表达式查找以大写 "C" 开头的任何单词:

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.span())

运行实例

实例

打印传入函数的字符串:

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.string)

运行实例

实例

打印匹配的字符串部分。

正则表达式查找以大写 "C" 开头的任何单词:

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.group())

运行实例

注释:如果没有匹配项,则返回值 None,而不是 Match 对象。