Python RegEx
- Edellinen sivu Python JSON
- Seuraava sivu Python PIP
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)
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)
这个列表以被找到的顺序包含匹配项。
如果未找到匹配项,则返回空列表:
Esimerkki
如果未找到匹配,则返回空列表:
import re str = "China is a great country" x = re.findall("USA", str) print(x)
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())
如果未找到匹配,则返回值 Ei arvoa
:
Esimerkki
进行不返回匹配的检索:
import re str = "China is a great country" x = re.search("USA", str) print(x)
split() 函数
split()
函数返回一个列表,其中字符串在每次匹配时被拆分:
Esimerkki
在每个空白字符处进行拆分:
import re str = "China is a great country" x = re.split("\s", str) print(x)
Voit määrittää maxsplit
参数来控制出现次数:
Esimerkki
仅在首次出现时拆分字符串:
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
sub() 函数
sub()
函数将匹配替换为您选择的文本:
Esimerkki
数字 9 替换每个空白字符:
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
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)
Match-objekti
Match-objekti on objekti, joka sisältää tietoa hakusta ja tuloksista.
Huomautus:Jos ei ole sopivia kohteita, palautetaan arvo Ei arvoa
eikä 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
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 merkkijonogroup()
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())
Esimerkki
Tulostetaan funktioon syötetty merkkijono:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
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())
Huomautus:Jos ei ole sopivia kohteita, palautetaan arvo Ei arvoa
eikä Match-objekti.
- Edellinen sivu Python JSON
- Seuraava sivu Python PIP