Python RegEx

RegEx tai säännöllinen lauseke on merkkijono, joka muodostaa hakumallin.

RegEx voidaan käyttää tarkistamaan, sisältääkö merkkijono määritellyn hakumallin.

RegEx-moduulin

Python tarjoaa nimeltä re Laittomuus, joka voidaan käyttää säännöllisten lausekkeiden käsittelyyn.

导入 re Moduuli:

import re

Pythonin RegEx

导入 re Moduuli jälkeen voit aloittaa käyttämään säännöllisiä lausekkeita:

Esimerkki

Hae merkkijonoa tarkistaaksesi, onko se alkanut "China"-sanalla ja päättynyt "country"-sanalla:

import re
txt = "China is a great country"
x = re.search("^China.*country$", txt)

Suorita esimerkki

RegEx-funktiot

re Moduuli tarjoaa joukon funktioita, jotka mahdollistavat merkkijonon hakemisen sopivuuden:

Funktio 描述
findall Palauttaa listan, joka sisältää kaikki vastaavat merkit
search Jos merkkijonossa on vastaava merkki missä tahansa sijainnissa, palautetaan Match-objekti
split Palauttaa listan, joka on jaettu jokaisessa vastauksessa
sub Korvaa yhden tai useamman vastaavan merkkiä merkkijonolla

Meta-merkki

Meta-merkki on merkki, jolla on erityinen merkitys:

Merkki 描述 Esimerkki TIY
[] Merkkijono "[a-m]" 试一试
\ Esimerkki erikoisjärjestystä (voidaan käyttää myös erikoismerkkien koodaukseen) "\d" 试一试
. Mikä tahansa merkki (poisluku rivinvaihto) "he..o" 试一试
^ Aloitetaan "^hello" 试一试
$ Päättyy "world$" 试一试
* Kertaalleen tai useammin "aix*" 试一试
+ Kerran tai useammin "aix+" 试一试
{} Tarkasti määritetty toistuvuus "al{2}" 试一试
| Molemmat "falls|stays" 试一试
()) K capture and grouping

Erikoisjärjestys

Erikoisjärjestys on \ Seuraavassa taulukossa olevan merkin jälkeen, sillä on erityinen merkitys:

Merkki 描述 Esimerkki TIY
\A Jos määritetty merkki sijaitsee merkkijonon alussa, palautetaan vastaava merkki "\AThe" 试一试
\b Palauttaa vastaavan merkkiä, joka on sanan alussa tai lopussa r"\bain"
r"ain\b"
试一试
试一试
\B Palauttaa vastaavan merkkiä, joka on olemassa, mutta ei sanan alussa (tai lopussa) r"\Bain"
r"ain\B"
试一试
试一试
\d Palauttaa vastaavan merkkiä, jossa merkkijono sisältää numerot (0-9) "\d" 试一试
\D Palauttaa vastaavan merkkiä, jossa merkkijono ei sisällä numeroita "\D" 试一试
\s Palauttaa vastaavan merkkiä, jossa merkkijono sisältää tyhjiä merkkejä "\s" 试一试
\S Palauttaa vastaavan merkkiä, jossa merkkijono ei sisällä tyhjiä merkkejä "\S" 试一试
\w Palauttaa vastaavan merkkiä, jossa merkkijono sisältää minkään sanamerkin
(Aakkoset a-z, numerot 0-9 ja alaviiva _ merkit)
"\w" 试一试
\W Palauttaa vastaavan merkkiä, jossa merkkijono ei sisällä minkään sanamerkin "\W" 试一试
\Z Jos määritetty merkki sijaitsee merkkijonon lopussa, palautetaan vastaava merkki "Spain\Z" 试一试

Koko (Set)

集合(Set)是一对方括号 [] 内的一组字符,具有特殊含义:

集合 描述 试一试
[arn] 返回一个匹配项,其中存在指定字符(a,r 或 n)之一 试一试
[a-n] 返回字母顺序 a 和 n 之间的任意小写字符匹配项 试一试
[^arn] 返回除 a、r 和 n 之外的任意字符的匹配项 试一试
[0123] 返回存在任何指定数字(0、1、2 或 3)的匹配项 试一试
[0-9] 返回 0 与 9 之间任意数字的匹配 试一试
[0-5][0-9] 返回介于 0 到 9 之间的任何数字的匹配项 试一试
[a-zA-Z] 返回字母顺序 a 和 z 之间的任何字符的匹配,小写或大写 试一试
[+] 在集合中,+、*、.、|、()、$、{} 没有特殊含义,因此 [+] 表示:返回字符串中任何 + 字符的匹配项 试一试

findall() 函数

findall() 函数返回包含所有匹配项的列表。

Esimerkki

打印所有匹配的列表:

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

Suorita esimerkki

这个列表以被找到的顺序包含匹配项。

如果未找到匹配项,则返回空列表:

Esimerkki

如果未找到匹配,则返回空列表:

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

Suorita esimerkki

search() 函数

search() 函数搜索字符串中的匹配项,如果存在匹配则返回 Match 对象。

如果有多个匹配,则仅返回首个匹配项:

Esimerkki

在字符串中搜索第一个空白字符:

import re
str = "China is a great country"
x = re.search("\s", str)
print("The first white-space character is located in position:\n", x.start())

Suorita esimerkki

如果未找到匹配,则返回值 Ei arvoa

Esimerkki

进行不返回匹配的检索:

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

Suorita esimerkki

split() 函数

split() 函数返回一个列表,其中字符串在每次匹配时被拆分:

Esimerkki

在每个空白字符处进行拆分:

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

Suorita esimerkki

Voit määrittää maxsplit 参数来控制出现次数:

Esimerkki

仅在首次出现时拆分字符串:

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

Suorita esimerkki

sub() 函数

sub() 函数将匹配替换为您选择的文本:

Esimerkki

数字 9 替换每个空白字符:

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

Suorita esimerkki

Voit määrittää count Parametrit valvovat korvausten määrää:

Esimerkki

Korvataan ensimmäiset kaksi esiintymää:

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

Suorita esimerkki

Match-objekti

Match-objekti on objekti, joka sisältää tietoa hakusta ja tuloksista.

Huomautus:Jos ei ole sopivia kohteita, palautetaan arvo Ei arvoaeikä Match-objekti.

Esimerkki

Suoritus palauttaa Match-objektin hakun

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

Suorita esimerkki

Match-objekti tarjoaa ominaisuuksia ja menetelmiä, jotka palauttavat tietoa hakusta ja tuloksista:

  • span() Palautettu tupla sisältää sopivan merkkijonon alkusijainnin ja loppusijainnin
  • .string Palautetaan funktioon syötetty merkkijono
  • group() Palautetaan sopivan merkkijonon osa

Esimerkki

Tulostetaan ensimmäisen sopivan merkkijonon sijainti (alku- ja loppusijainti).

Hakusanat, jotka alkavat isolla kirjaimella "C":

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

Suorita esimerkki

Esimerkki

Tulostetaan funktioon syötetty merkkijono:

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

Suorita esimerkki

Esimerkki

Tulostetaan sopivien merkkijonojen osat.

Hakusanat, jotka alkavat isolla kirjaimella "C":

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

Suorita esimerkki

Huomautus:Jos ei ole sopivia kohteita, palautetaan arvo Ei arvoaeikä Match-objekti.